Load only required components in the application contexts 60/121560/6
authorRenu Kumari <renu.kumari@bell.ca>
Wed, 26 May 2021 12:47:52 +0000 (08:47 -0400)
committerRenu Kumari <renu.kumari@bell.ca>
Fri, 28 May 2021 14:03:15 +0000 (10:03 -0400)
Issue-ID: CPS-434
Signed-off-by: Renu Kumari <renu.kumari@bell.ca>
Change-Id: Iacc12946495b9e6ec42b4b7d4e3b5b010fecceb5

.gitignore
cps-ri/src/test/java/org/onap/cps/TestApplication.java
cps-service/src/test/groovy/org/onap/cps/api/impl/CpsModuleServiceImplSpec.groovy
cps-service/src/test/groovy/org/onap/cps/utils/YangTextSchemaSourceSetSpec.groovy

index 8fff710..3ab1019 100755 (executable)
@@ -12,6 +12,7 @@ log/
 *.iml
 *.ipr
 *.iws
+*.DS_Store
 
 .settings/
 bin/
index 5e0e367..0d1df45 100644 (file)
@@ -1,6 +1,7 @@
 /*
  *  ============LICENSE_START=======================================================
  *  Copyright (C) 2020 Pantheon.tech
+ *  Modifications Copyright (C) 2021 Bell Canada.
  *  ================================================================================
  *  Licensed under the Apache License, Version 2.0 (the "License");
  *  you may not use this file except in compliance with the License.
@@ -25,6 +26,6 @@ import org.springframework.boot.autoconfigure.SpringBootApplication;
  * The @SpringBootApplication annotated class is required in order to run tests
  * marked with @SpringBootTest annotation.
  */
-@SpringBootApplication
+@SpringBootApplication(scanBasePackages = "org.onap.cps.spi")
 public class TestApplication {
 }
index d20149b..0af0334 100644 (file)
@@ -21,8 +21,6 @@
 package org.onap.cps.api.impl
 
 import org.onap.cps.TestUtils
-import org.onap.cps.api.CpsAdminService
-import org.onap.cps.spi.CpsDataPersistenceService
 import org.onap.cps.spi.CpsModulePersistenceService
 import org.onap.cps.spi.exceptions.ModelValidationException
 import org.onap.cps.spi.model.ModuleReference
@@ -30,8 +28,8 @@ import org.spockframework.spring.SpringBean
 import org.springframework.beans.factory.annotation.Autowired
 import org.springframework.boot.test.context.SpringBootTest
 import org.springframework.cache.CacheManager
+import org.springframework.cache.annotation.EnableCaching
 import org.springframework.cache.caffeine.CaffeineCacheManager
-import org.springframework.context.annotation.ComponentScan
 import org.springframework.test.context.ContextConfiguration
 import spock.lang.Specification
 
@@ -39,19 +37,18 @@ import static org.onap.cps.spi.CascadeDeleteAllowed.CASCADE_DELETE_ALLOWED
 import static org.onap.cps.spi.CascadeDeleteAllowed.CASCADE_DELETE_PROHIBITED
 
 @SpringBootTest
-@ComponentScan("org.onap.cps")
-@ContextConfiguration(classes = CpsModuleServiceImplSpec.class)
+@EnableCaching
+@ContextConfiguration(classes = [YangTextSchemaSourceSetCache.class, CpsModuleServiceImpl.class])
 class CpsModuleServiceImplSpec extends Specification {
+
     @SpringBean
     CpsModulePersistenceService mockModuleStoreService = Mock()
+
     @SpringBean
-    CpsAdminService mockCpsAdminService = Mock()
-    @SpringBean
-    CpsDataPersistenceService mockDataPersistenceService = Mock()
+    CacheManager cacheManager = new CaffeineCacheManager("yangSchema")
+
     @Autowired
-    CpsModuleServiceImpl objectUnderTest = new CpsModuleServiceImpl()
-    @SpringBean
-    CacheManager cacheManager = new CaffeineCacheManager("yangSchema");
+    CpsModuleServiceImpl objectUnderTest
 
     def 'Create schema set'() {
         given: 'Valid yang resource as name-to-content map'
index e58f442..be5610c 100644 (file)
@@ -1,6 +1,7 @@
 /*
  * ============LICENSE_START=======================================================
  *  Copyright (C) 2020 Nordix Foundation
+ *  Modifications Copyright (C) 2021 Bell Canada.
  *  ================================================================================
  *  Licensed under the Apache License, Version 2.0 (the "License");
  *  you may not use this file except in compliance with the License.
@@ -31,7 +32,7 @@ class YangTextSchemaSourceSetSpec extends Specification {
         given: 'a yang model (file)'
             def yangResourceNameToContent = [filename: TestUtils.getResourceFileContent('bookstore.yang')]
         when: 'the content is parsed'
-            def result = YangTextSchemaSourceSetBuilder.of(yangResourceNameToContent).getSchemaContext();
+            def result = YangTextSchemaSourceSetBuilder.of(yangResourceNameToContent).getSchemaContext()
         then: 'the result contains 1 module of the correct name and revision'
             result.modules.size() == 1
             def optionalModule = result.findModule('stores', Revision.of('2020-09-15'))