2 * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
4 * Licensed under the Apache License, Version 2.0 (the "License");
5 * you may not use this file except in compliance with the License.
6 * You may obtain a copy of the License at
8 * http://www.apache.org/licenses/LICENSE-2.0
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an "AS IS" BASIS,
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
13 * or implied. See the License for the specific language governing
14 * permissions and limitations under the License.
17 import mockRest from 'test-utils/MockRest.js';
18 import {storeCreator} from 'sdc-app/AppStore.js';
19 import SoftwareProductComponentsMonitoringConstants from 'sdc-app/onboarding/softwareProduct/components/monitoring/SoftwareProductComponentsMonitoringConstants.js';
20 import SoftwareProductComponentsMonitoringActionHelper from 'sdc-app/onboarding/softwareProduct/components/monitoring/SoftwareProductComponentsMonitoringActionHelper.js';
22 import {VSPComponentsMonitoringRestFactory} from 'test-utils/factories/softwareProduct/SoftwareProductComponentsMonitoringFactories.js';
23 import VersionControllerUtilsFactory from 'test-utils/factories/softwareProduct/VersionControllerUtilsFactory.js';
25 const softwareProductId = '123';
26 const componentId = '123';
27 const version = VersionControllerUtilsFactory.build().version;
29 describe('Software Product Components Monitoring Module Tests', function () {
34 store = storeCreator();
38 it('Fetch for existing files - no files', done => {
40 let emptyResult = VSPComponentsMonitoringRestFactory.build();
42 mockRest.addHandler('fetch', ({ baseUrl}) => {
43 expect(baseUrl).toEqual(`/onboarding-api/v1.0/vendor-software-products/${softwareProductId}/versions/${version.id}/components/${componentId}/monitors/snmp`);
47 SoftwareProductComponentsMonitoringActionHelper.fetchExistingFiles(store.dispatch, {
53 var {softwareProduct: {softwareProductComponents: {monitoring}}} = store.getState();
54 expect(monitoring.pollFilename).toEqual(emptyResult.snmpPoll);
55 expect(monitoring.trapFilename).toEqual(emptyResult.snmpTrap);
61 it('Fetch for existing files - only snmp trap file exists', done => {
62 let response = VSPComponentsMonitoringRestFactory.build({}, {snmpTrapFlag: true});
64 mockRest.addHandler('fetch', ({ baseUrl}) => {
65 expect(baseUrl).toEqual(`/onboarding-api/v1.0/vendor-software-products/${softwareProductId}/versions/${version.id}/components/${componentId}/monitors/snmp`);
69 SoftwareProductComponentsMonitoringActionHelper.fetchExistingFiles(store.dispatch, {
75 var {softwareProduct: {softwareProductComponents: {monitoring}}} = store.getState();
76 expect(monitoring.pollFilename).toEqual(response.snmpPoll);
77 expect(monitoring.trapFilename).toEqual(response.snmpTrap);
82 it('Fetch for existing files - only snmp poll file exists', done => {
83 let response = VSPComponentsMonitoringRestFactory.build({}, {snmpPollFlag: true});
85 mockRest.addHandler('fetch', ({baseUrl}) => {
86 expect(baseUrl).toEqual(`/onboarding-api/v1.0/vendor-software-products/${softwareProductId}/versions/${version.id}/components/${componentId}/monitors/snmp`);
90 SoftwareProductComponentsMonitoringActionHelper.fetchExistingFiles(store.dispatch, {
96 var {softwareProduct: {softwareProductComponents: {monitoring}}} = store.getState();
97 expect(monitoring.pollFilename).toEqual(response.snmpPoll);
98 expect(monitoring.trapFilename).toEqual(response.snmpTrap);
103 it('Fetch for existing files - both files exist', done => {
104 let response = VSPComponentsMonitoringRestFactory.build({}, {snmpTrapFlag: true, snmpPollFlag: true});
106 mockRest.addHandler('fetch', ({baseUrl}) => {
107 expect(baseUrl).toEqual(`/onboarding-api/v1.0/vendor-software-products/${softwareProductId}/versions/${version.id}/components/${componentId}/monitors/snmp`);
111 SoftwareProductComponentsMonitoringActionHelper.fetchExistingFiles(store.dispatch, {
117 var {softwareProduct: {softwareProductComponents: {monitoring}}} = store.getState();
118 expect(monitoring.pollFilename).toEqual(response.snmpPoll);
119 expect(monitoring.trapFilename).toEqual(response.snmpTrap);
124 it('Upload snmp trap file', done => {
126 mockRest.addHandler('post', ({baseUrl}) => {
127 expect(baseUrl).toEqual(`/onboarding-api/v1.0/vendor-software-products/${softwareProductId}/versions/${version.id}/components/${componentId}/monitors/snmp-trap/upload`);
130 var debug = {hello: 'world'};
131 let file = new Blob([JSON.stringify(debug, null, 2)], {type: 'application/json'});;
132 let formData = new FormData();
133 formData.append('upload', file);
134 SoftwareProductComponentsMonitoringActionHelper.uploadSnmpFile(store.dispatch, {
140 type: SoftwareProductComponentsMonitoringConstants.SNMP_TRAP
143 var {softwareProduct: {softwareProductComponents: {monitoring}}} = store.getState();
144 expect(monitoring.pollFilename).toEqual(undefined);
145 expect(monitoring.trapFilename).toEqual('blob');
150 it('Upload snmp poll file', done => {
151 mockRest.addHandler('post', ({baseUrl}) => {
152 expect(baseUrl).toEqual(`/onboarding-api/v1.0/vendor-software-products/${softwareProductId}/versions/${version.id}/components/${componentId}/monitors/snmp/upload`);
155 var debug = {hello: 'world'};
156 let file = new Blob([JSON.stringify(debug, null, 2)], {type: 'application/json'});;
157 let formData = new FormData();
158 formData.append('upload', file);
159 SoftwareProductComponentsMonitoringActionHelper.uploadSnmpFile(store.dispatch, {
165 type: SoftwareProductComponentsMonitoringConstants.SNMP_POLL
168 var {softwareProduct: {softwareProductComponents: {monitoring}}} = store.getState();
169 expect(monitoring.pollFilename).toEqual('blob');
170 expect(monitoring.trapFilename).toEqual(undefined);
175 it('Delete snmp trap file', done => {
176 mockRest.addHandler('destroy', ({baseUrl}) => {
177 expect(baseUrl).toEqual(`/onboarding-api/v1.0/vendor-software-products/${softwareProductId}/versions/${version.id}/components/${componentId}/monitors/snmp-trap`);
180 SoftwareProductComponentsMonitoringActionHelper.deleteSnmpFile(store.dispatch, {
184 type: SoftwareProductComponentsMonitoringConstants.SNMP_TRAP
187 var {softwareProduct: {softwareProductComponents: {monitoring}}} = store.getState();
188 expect(monitoring.trapFilename).toEqual(undefined);
193 it('Delete snmp poll file', done => {
194 mockRest.addHandler('destroy', ({baseUrl}) => {
195 expect(baseUrl).toEqual(`/onboarding-api/v1.0/vendor-software-products/${softwareProductId}/versions/${version.id}/components/${componentId}/monitors/snmp`);
198 SoftwareProductComponentsMonitoringActionHelper.deleteSnmpFile(store.dispatch, {
202 type: SoftwareProductComponentsMonitoringConstants.SNMP_POLL
205 var {softwareProduct: {softwareProductComponents: {monitoring}}} = store.getState();
206 expect(monitoring.pollFilename).toEqual(undefined);