/*\r
* ============LICENSE_START=======================================================\r
- * Copyright (C) 2021 Nordix Foundation.\r
- * Modifications Copyright (C) 2021 Bell Canada.\r
+ * Copyright (C) 2021-2023 Nordix Foundation.\r
+ * Modifications Copyright (C) 2021-2022 Bell Canada.\r
* Modifications Copyright (C) 2021 Pantheon.tech\r
+ * Modifications Copyright (C) 2022 TechMahindra Ltd.\r
* ================================================================================\r
* Licensed under the Apache License, Version 2.0 (the "License");\r
* you may not use this file except in compliance with the License.\r
* You may obtain a copy of the License at\r
*\r
- * http://www.apache.org/licenses/LICENSE-2.0\r
+ * http://www.apache.org/licenses/LICENSE-2.0\r
*\r
* Unless required by applicable law or agreed to in writing, software\r
* distributed under the License is distributed on an "AS IS" BASIS,\r
\r
package org.onap.cps.api.impl\r
\r
-import java.time.OffsetDateTime\r
import org.onap.cps.TestUtils\r
import org.onap.cps.api.CpsAdminService\r
import org.onap.cps.notification.NotificationService\r
import org.onap.cps.spi.CpsDataPersistenceService\r
import org.onap.cps.spi.CpsModulePersistenceService\r
import org.onap.cps.spi.model.Anchor\r
+import org.onap.cps.spi.utils.CpsValidator\r
+import org.onap.cps.utils.TimedYangParser\r
import org.onap.cps.utils.YangUtils\r
+import org.onap.cps.yang.TimedYangTextSchemaSourceSetBuilder\r
import org.onap.cps.yang.YangTextSchemaSourceSetBuilder\r
import spock.lang.Specification\r
\r
def mockDataStoreService = Mock(CpsDataPersistenceService)\r
def mockCpsAdminService = Mock(CpsAdminService)\r
def mockNotificationService = Mock(NotificationService)\r
- def cpsModuleServiceImpl = new CpsModuleServiceImpl()\r
- def cpsDataServiceImpl = new CpsDataServiceImpl()\r
def mockYangTextSchemaSourceSetCache = Mock(YangTextSchemaSourceSetCache)\r
+ def mockCpsValidator = Mock(CpsValidator)\r
+ def timedYangTextSchemaSourceSetBuilder = new TimedYangTextSchemaSourceSetBuilder()\r
+ def timedYangParser = new TimedYangParser()\r
+\r
+ def cpsModuleServiceImpl = new CpsModuleServiceImpl(mockModuleStoreService,\r
+ mockYangTextSchemaSourceSetCache, mockCpsAdminService, mockCpsValidator,timedYangTextSchemaSourceSetBuilder)\r
+\r
+ def cpsDataServiceImpl = new CpsDataServiceImpl(mockDataStoreService, mockCpsAdminService,\r
+ mockYangTextSchemaSourceSetCache, mockNotificationService, mockCpsValidator, timedYangParser)\r
\r
def dataspaceName = 'someDataspace'\r
def anchorName = 'someAnchor'\r
def schemaSetName = 'someSchemaSet'\r
def noTimestamp = null\r
\r
- def setup() {\r
- cpsDataServiceImpl.cpsDataPersistenceService = mockDataStoreService\r
- cpsDataServiceImpl.cpsAdminService = mockCpsAdminService\r
- cpsDataServiceImpl.yangTextSchemaSourceSetCache = mockYangTextSchemaSourceSetCache\r
- cpsDataServiceImpl.notificationService = mockNotificationService\r
- cpsModuleServiceImpl.yangTextSchemaSourceSetCache = mockYangTextSchemaSourceSetCache\r
- cpsModuleServiceImpl.cpsModulePersistenceService = mockModuleStoreService\r
- }\r
-\r
def 'E2E model can be parsed by CPS.'() {\r
given: 'Valid yang resource as name-to-content map'\r
def yangResourcesNameToContentMap = TestUtils.getYangResourcesAsMap(\r
when: 'saveData method is invoked'\r
cpsDataServiceImpl.saveData(dataspaceName, anchorName, jsonData, noTimestamp)\r
then: 'Parameters are validated and processing is delegated to persistence service'\r
- 1 * mockDataStoreService.storeDataNode('someDataspace', 'someAnchor', _) >>\r
+ 1 * mockDataStoreService.storeDataNodes('someDataspace', 'someAnchor', _) >>\r
{ args -> dataNodeStored = args[2]}\r
- def child = dataNodeStored.childDataNodes[0]\r
+ def child = dataNodeStored[0].childDataNodes[0]\r
assert child.childDataNodes.size() == 1\r
and: 'list of Tracking Area for a Coverage Area are stored with correct xpath and child nodes '\r
def listOfTAForCoverageArea = child.childDataNodes[0]\r
when: 'saveData method is invoked'\r
cpsDataServiceImpl.saveData('someDataspace', 'someAnchor', jsonData, noTimestamp)\r
then: 'parameters are validated and processing is delegated to persistence service'\r
- 1 * mockDataStoreService.storeDataNode('someDataspace', 'someAnchor', _) >>\r
+ 1 * mockDataStoreService.storeDataNodes('someDataspace', 'someAnchor', _) >>\r
{ args -> dataNodeStored = args[2]}\r
and: 'the size of the tree is correct'\r
- def cpsRanInventory = TestUtils.getFlattenMapByXpath(dataNodeStored)\r
+ def cpsRanInventory = TestUtils.getFlattenMapByXpath(dataNodeStored[0])\r
assert cpsRanInventory.size() == 4\r
and: 'ran-inventory contains the correct child node'\r
def ranInventory = cpsRanInventory.get('/ran-inventory')\r