From ca007e933bcd9f63aa77801656ed9dd4142c432c Mon Sep 17 00:00:00 2001 From: ARULNA Date: Fri, 2 Jun 2017 16:27:25 -0400 Subject: Initial coomit for AAI-UI(sparky-fe) Change-Id: I9f8482824a52bac431c100939899e760c0fa4fdb Signed-off-by: ARULNA --- .../vnfSearchVisualizations.test.js | 97 ++++++++++++++ .../vnfSearchVisualizationsReducer.test.js | 149 +++++++++++++++++++++ 2 files changed, 246 insertions(+) create mode 100644 test/vnfSearch/vnfSearchVisualizations/vnfSearchVisualizations.test.js create mode 100644 test/vnfSearch/vnfSearchVisualizations/vnfSearchVisualizationsReducer.test.js (limited to 'test/vnfSearch') diff --git a/test/vnfSearch/vnfSearchVisualizations/vnfSearchVisualizations.test.js b/test/vnfSearch/vnfSearchVisualizations/vnfSearchVisualizations.test.js new file mode 100644 index 0000000..0905d35 --- /dev/null +++ b/test/vnfSearch/vnfSearchVisualizations/vnfSearchVisualizations.test.js @@ -0,0 +1,97 @@ +/* + * ============LICENSE_START======================================================= + * SPARKY (AAI UI service) + * ================================================================================ + * Copyright © 2017 AT&T Intellectual Property. + * Copyright © 2017 Amdocs + * All rights reserved. + * ================================================================================ + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ============LICENSE_END========================================================= + * + * ECOMP and OpenECOMP are trademarks + * and service marks of AT&T Intellectual Property. + */ + +import React from 'react'; +import TestUtils from 'react-dom/lib/ReactTestUtils'; +import {storeCreator} from 'app/AppStore.js'; +import {Provider} from 'react-redux'; +import { expect } from 'chai'; +import VnfSearchOrchStatusVisualizations from 'app/vnfSearch/vnfSearchVisualizations/VnfSearchOrchestratedStatusVisualization.jsx'; +import VnfSearchProvStatusVisualizations from 'app/vnfSearch/vnfSearchVisualizations/VnfSearchProvStatusVisualization.jsx'; +import VnfSearchTotalCountVisualization from 'app/vnfSearch/vnfSearchVisualizations/VnfSearchTotalCountVisualization.jsx'; +import { + CHART_PROV_STATUS, + CHART_ORCH_STATUS, + TOTAL_VNF_COUNT} from 'app/vnfSearch/vnfSearchVisualizations/VnfSearchVisualizationsConstants.js'; + +describe('VNF Visualizations Structure Tests', function () { + + function createState(processedOrchStatusCountChartData, + processedProvStatusCountChartData) { + return { + vnfSearch: { + auditVisualizationsData: { + processedOrchStatusCountChartData: processedOrchStatusCountChartData, + processedProvStatusCountChartData: processedProvStatusCountChartData + } + } + }; + } + + it('VNF: Visualization layout VNF Orch Status, no data', function () { + const store = storeCreator(createState( + CHART_ORCH_STATUS.clearingEmptyData, + CHART_PROV_STATUS.clearingEmptyData + )); + this.component = TestUtils.renderIntoDocument( + + + + ); + let visualizationContainer = TestUtils.scryRenderedDOMComponentsWithClass(this.component, 'visualizations'); + expect(visualizationContainer).to.exist; // there is always a visualizations container + expect(visualizationContainer[0].className).to.contain('hidden'); // make sure visualizations is hidden + }); + + it('VNF: Visualization layout VNF Prov Status, no data', function () { + const store = storeCreator(createState( + CHART_ORCH_STATUS.clearingEmptyData, + CHART_PROV_STATUS.clearingEmptyData + )); + this.component = TestUtils.renderIntoDocument( + + + + ); + let visualizationContainer = TestUtils.scryRenderedDOMComponentsWithClass(this.component, 'visualizations'); + expect(visualizationContainer).to.exist; // there is always a visualizations container + expect(visualizationContainer[0].className).to.contain('hidden'); // make sure visualizations is hidden + }); + + + it('VNF: Visualization layout Total VNF, no data', function () { + const store = storeCreator(createState( + TOTAL_VNF_COUNT.clearingEmptyValue + )); + this.component = TestUtils.renderIntoDocument( + + + + ); + let visualizationContainer = TestUtils.scryRenderedDOMComponentsWithClass(this.component, 'visualizations'); + expect(visualizationContainer).to.exist; // there is always a visualizations container + expect(visualizationContainer[0].className).to.contain('hidden'); // make sure visualizations is hidden + }); +}); diff --git a/test/vnfSearch/vnfSearchVisualizations/vnfSearchVisualizationsReducer.test.js b/test/vnfSearch/vnfSearchVisualizations/vnfSearchVisualizationsReducer.test.js new file mode 100644 index 0000000..e146f11 --- /dev/null +++ b/test/vnfSearch/vnfSearchVisualizations/vnfSearchVisualizationsReducer.test.js @@ -0,0 +1,149 @@ +/* + * ============LICENSE_START======================================================= + * SPARKY (AAI UI service) + * ================================================================================ + * Copyright © 2017 AT&T Intellectual Property. + * Copyright © 2017 Amdocs + * All rights reserved. + * ================================================================================ + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ============LICENSE_END========================================================= + * + * ECOMP and OpenECOMP are trademarks + * and service marks of AT&T Intellectual Property. + */ + +import React from 'react'; +import { expect } from 'chai'; +import reducer from 'app/vnfSearch/vnfSearchVisualizations/VnfSearchVisualizationsReducer.js'; +import { + CHART_ORCH_STATUS, + CHART_PROV_STATUS, vnfSearchVisualizationsActionTypes} from 'app/vnfSearch/vnfSearchVisualizations/VnfSearchVisualizationsConstants.js'; + + + +describe('VNF: Audit Visualizations Reducers test suite', function() { + const initialState = { + processedProvStatusCountChartData: CHART_PROV_STATUS.clearingEmptyData, + processedOrchStatusCountChartData: CHART_ORCH_STATUS.clearingEmptyData + }; + const initStateWithData = { + processedProvStatusCountChartData: [ + { + values: [ + { + x: 'complex', + y: 60 + } + ] + } + ], + processedOrchStatusCountChartData: [ + { + values: [ + { + x: 'prov-status', + y: 60 + } + ] + } + ] + }; + + + + it('VNF: COUNT_BY_ORCH_STATUS_RECEIVED event', function() { + const chartData = [ + { + 'values': [ + { 'x': 'physical-location-id', 'y': 22}, + { 'x': 'prov-status', 'y': 14}, + { 'x': 'status-type-3', 'y': 24} + ] + } + ]; + + const action = { + type: vnfSearchVisualizationsActionTypes.COUNT_BY_ORCH_STATUS_RECEIVED, + data: { + orchStatusCountChartData: { + chartData: chartData, + } + } + }; + + const newState = reducer(initialState, action); + expect(newState.processedOrchStatusCountChartData[0].values.length).to.equal(3); + expect(newState.processedOrchStatusCountChartData[0].values[0]['x']).to.equal('physical-location-id'); + expect(newState.processedOrchStatusCountChartData[0].values[1]['x']).to.equal('prov-status'); + expect(newState.processedOrchStatusCountChartData[0].values[2]['x']).to.equal('status-type-3'); + expect(newState.processedOrchStatusCountChartData[0].values[0]['y']).to.equal(22); + expect(newState.processedOrchStatusCountChartData[0].values[1]['y']).to.equal(14); + expect(newState.processedOrchStatusCountChartData[0].values[2]['y']).to.equal(24); + }); + + it('VNF: COUNT_BY_PROV_STATUS_RECEIVED event', function() { + const chartData = [ + { + 'values': [ + { 'x': 'physical-location-id', 'y': 22}, + { 'x': 'prov-status', 'y': 14}, + { 'x': 'status-type-3', 'y': 24} + ] + } + ]; + + const action = { + type: vnfSearchVisualizationsActionTypes.COUNT_BY_PROV_STATUS_RECEIVED, + data: { + provStatusCountChartData: { + chartData: chartData, + } + } + }; + + const newState = reducer(initialState, action); + expect(newState.processedProvStatusCountChartData[0].values.length).to.equal(3); + expect(newState.processedProvStatusCountChartData[0].values[0]['x']).to.equal('physical-location-id'); + expect(newState.processedProvStatusCountChartData[0].values[1]['x']).to.equal('prov-status'); + expect(newState.processedProvStatusCountChartData[0].values[2]['x']).to.equal('status-type-3'); + expect(newState.processedProvStatusCountChartData[0].values[0]['y']).to.equal(22); + expect(newState.processedProvStatusCountChartData[0].values[1]['y']).to.equal(14); + expect(newState.processedProvStatusCountChartData[0].values[2]['y']).to.equal(24); + }); + + + it('VNF: Total VNF event', function() { + + + const action = { + type: vnfSearchVisualizationsActionTypes.TOTAL_VNF_COUNT_RECEIVED, + data: {count: 10} + }; + + const newState = reducer(initialState, action); + expect(newState.count).to.equal(10); + + }); + + + it('VNF: NETWORK_ERROR event', function() { + const action = { + type: vnfSearchVisualizationsActionTypes.VNF_SEARCH_NETWORK_ERROR + } + const newState = reducer(initStateWithData, action); + expect(newState.processedProvStatusCountChartData).to.deep.equal(CHART_PROV_STATUS.clearingEmptyData); + expect(newState.processedOrchStatusCountChartData).to.deep.equal(CHART_ORCH_STATUS.clearingEmptyData); + }); + +}); -- cgit 1.2.3-korg