2 * ============LICENSE_START=======================================================
4 * ================================================================================
5 * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
6 * ================================================================================
7 * Licensed under the Apache License, Version 2.0 (the "License");
8 * you may not use this file except in compliance with the License.
9 * You may obtain a copy of the License at
11 * http://www.apache.org/licenses/LICENSE-2.0
13 * Unless required by applicable law or agreed to in writing, software
14 * distributed under the License is distributed on an "AS IS" BASIS,
15 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
16 * See the License for the specific language governing permissions and
17 * limitations under the License.
18 * ============LICENSE_END=========================================================
21 import expect from 'expect';
22 import mockRest from 'test-utils/MockRest.js';
23 import {storeCreator} from 'sdc-app/AppStore.js';
24 import SoftwareProductComponentsMonitoringConstants from 'sdc-app/onboarding/softwareProduct/components/monitoring/SoftwareProductComponentsMonitoringConstants.js';
25 import SoftwareProductComponentsMonitoringActionHelper from 'sdc-app/onboarding/softwareProduct/components/monitoring/SoftwareProductComponentsMonitoringActionHelper.js';
27 const softwareProductId = '123';
28 const componentId = '123';
30 describe('Software Product Components Monitoring Module Tests', function () {
35 store = storeCreator();
39 it('Fetch for existing files - no files', done => {
41 let emptyResult = Object.freeze({
46 mockRest.addHandler('fetch', ({ baseUrl}) => {
47 expect(baseUrl).toEqual(`/onboarding-api/v1.0/vendor-software-products/${softwareProductId}/components/${componentId}/monitors/snmp`);
51 SoftwareProductComponentsMonitoringActionHelper.fetchExistingFiles(store.dispatch, {
56 var {softwareProduct: {softwareProductComponents: {monitoring}}} = store.getState();
57 expect(monitoring.pollFilename).toEqual(emptyResult.snmpPoll);
58 expect(monitoring.trapFilename).toEqual(emptyResult.snmpTrap);
64 it('Fetch for existing files - only snmp trap file exists', done => {
65 let response = Object.freeze({
70 mockRest.addHandler('fetch', ({ baseUrl}) => {
71 expect(baseUrl).toEqual(`/onboarding-api/v1.0/vendor-software-products/${softwareProductId}/components/${componentId}/monitors/snmp`);
75 SoftwareProductComponentsMonitoringActionHelper.fetchExistingFiles(store.dispatch, {
80 var {softwareProduct: {softwareProductComponents: {monitoring}}} = store.getState();
81 expect(monitoring.pollFilename).toEqual(response.snmpPoll);
82 expect(monitoring.trapFilename).toEqual(response.snmpTrap);
87 it('Fetch for existing files - only snmp poll file exists', done => {
88 let response = Object.freeze({
93 mockRest.addHandler('fetch', ({baseUrl}) => {
94 expect(baseUrl).toEqual(`/onboarding-api/v1.0/vendor-software-products/${softwareProductId}/components/${componentId}/monitors/snmp`);
98 SoftwareProductComponentsMonitoringActionHelper.fetchExistingFiles(store.dispatch, {
103 var {softwareProduct: {softwareProductComponents: {monitoring}}} = store.getState();
104 expect(monitoring.pollFilename).toEqual(response.snmpPoll);
105 expect(monitoring.trapFilename).toEqual(response.snmpTrap);
110 it('Fetch for existing files - both files exist', done => {
111 let response = Object.freeze({
112 snmpPoll: 'asdfasdf',
116 mockRest.addHandler('fetch', ({baseUrl}) => {
117 expect(baseUrl).toEqual(`/onboarding-api/v1.0/vendor-software-products/${softwareProductId}/components/${componentId}/monitors/snmp`);
121 SoftwareProductComponentsMonitoringActionHelper.fetchExistingFiles(store.dispatch, {
126 var {softwareProduct: {softwareProductComponents: {monitoring}}} = store.getState();
127 expect(monitoring.pollFilename).toEqual(response.snmpPoll);
128 expect(monitoring.trapFilename).toEqual(response.snmpTrap);
133 it('Upload snmp trap file', done => {
135 mockRest.addHandler('create', ({baseUrl}) => {
136 expect(baseUrl).toEqual(`/onboarding-api/v1.0/vendor-software-products/${softwareProductId}/components/${componentId}/monitors/snmp-trap/upload`);
139 var debug = {hello: 'world'};
140 let file = new Blob([JSON.stringify(debug, null, 2)], {type: 'application/json'});;
141 let formData = new FormData();
142 formData.append('upload', file);
143 SoftwareProductComponentsMonitoringActionHelper.uploadSnmpFile(store.dispatch, {
148 type: SoftwareProductComponentsMonitoringConstants.SNMP_TRAP
151 var {softwareProduct: {softwareProductComponents: {monitoring}}} = store.getState();
152 expect(monitoring.pollFilename).toEqual(undefined);
153 expect(monitoring.trapFilename).toEqual('blob');
158 it('Upload snmp poll file', done => {
159 mockRest.addHandler('create', ({baseUrl}) => {
160 expect(baseUrl).toEqual(`/onboarding-api/v1.0/vendor-software-products/${softwareProductId}/components/${componentId}/monitors/snmp/upload`);
163 var debug = {hello: 'world'};
164 let file = new Blob([JSON.stringify(debug, null, 2)], {type: 'application/json'});;
165 let formData = new FormData();
166 formData.append('upload', file);
167 SoftwareProductComponentsMonitoringActionHelper.uploadSnmpFile(store.dispatch, {
172 type: SoftwareProductComponentsMonitoringConstants.SNMP_POLL
175 var {softwareProduct: {softwareProductComponents: {monitoring}}} = store.getState();
176 expect(monitoring.pollFilename).toEqual('blob');
177 expect(monitoring.trapFilename).toEqual(undefined);
182 it('Delete snmp trap file', done => {
183 mockRest.addHandler('destroy', ({baseUrl}) => {
184 expect(baseUrl).toEqual(`/onboarding-api/v1.0/vendor-software-products/${softwareProductId}/components/${componentId}/monitors/snmp-trap`);
187 SoftwareProductComponentsMonitoringActionHelper.deleteSnmpFile(store.dispatch, {
190 type: SoftwareProductComponentsMonitoringConstants.SNMP_TRAP
193 var {softwareProduct: {softwareProductComponents: {monitoring}}} = store.getState();
194 expect(monitoring.trapFilename).toEqual(undefined);
199 it('Delete snmp poll file', done => {
200 mockRest.addHandler('destroy', ({baseUrl}) => {
201 expect(baseUrl).toEqual(`/onboarding-api/v1.0/vendor-software-products/${softwareProductId}/components/${componentId}/monitors/snmp`);
204 SoftwareProductComponentsMonitoringActionHelper.deleteSnmpFile(store.dispatch, {
207 type: SoftwareProductComponentsMonitoringConstants.SNMP_POLL
210 var {softwareProduct: {softwareProductComponents: {monitoring}}} = store.getState();
211 expect(monitoring.pollFilename).toEqual(undefined);