From 194d6e19da729265130123b6638e0f57589c9367 Mon Sep 17 00:00:00 2001 From: seshukm Date: Mon, 6 Mar 2017 10:22:11 +0530 Subject: Code for the VNF Market place Issue-Id : CLIENT-4 Change-Id: I138f9ee72853ab12e0dd5197cc72db169b6f65ef Signed-off-by: seshukm --- vnfmarket/app/modules/home/home-test.js | 164 ++++++++++++++++++++++++++++++++ 1 file changed, 164 insertions(+) create mode 100644 vnfmarket/app/modules/home/home-test.js (limited to 'vnfmarket/app/modules/home/home-test.js') diff --git a/vnfmarket/app/modules/home/home-test.js b/vnfmarket/app/modules/home/home-test.js new file mode 100644 index 00000000..a182a9b3 --- /dev/null +++ b/vnfmarket/app/modules/home/home-test.js @@ -0,0 +1,164 @@ +/* + * Copyright 2017 Huawei Technologies Co., Ltd. + * + * 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. + */ +(function() { + 'use strict'; + + /** + * @ngdoc function + * @name app.test:homeTest + * @description + * # homeTest + * Test of the app + */ + + describe('Home - Marketplace', function() { + var controller = null, + $scope = null, + $location, service, httpBackend, config, state; + + beforeEach(function() { + module('vnfmarket'); + }); + beforeEach(module('ui.router')); + beforeEach(module('md.data.table')); + beforeEach(module('pascalprecht.translate')); + + beforeEach(inject(function($controller, $rootScope, _$location_, homeService, $httpBackend, vnfConfig, $state) { + $scope = $rootScope.$new(); + $location = _$location_; + service = homeService; + httpBackend = $httpBackend; + config = vnfConfig; + state = $state; + controller = $controller('HomeCtrl', { + $scope: $scope + }); + })); + + it('Should HomeCtrl must be defined', function() { + expect(controller).toBeDefined(); + }); + + it('Service List response should be of type array', function() { + var data = [{ + "csarId": "26b4d6c4-a157-43c0-8ebc-9d6af1d6c40c", + "name": "clearwater_vnf", + "downloadUri": "null/files/catalog-http/NFAR/Canonical/clearwater_vnf/v1.0/clearwater_vnf.csar", + "report": "/Demo/reports/b3232e0c-3843-4df8-88e7-734cf2d7a97c/report.html", + "size": "1.8 MB", + "version": "v1.0", + "provider": "Canonical", + "type": "NFAR", + "format": "yaml", + "deletionPending": false, + "createTime": "2017-02-22 08:59:06", + "modifyTime": "2017-02-22 08:59:06", + "shortDesc": "", + "details": "", + "remarks": "" + }]; + httpBackend.whenGET(config.common.baseUrl + config.api.home.getFeaturesList.url).respond(200, data); + + var returnData = {}; + httpBackend.expectGET(config.common.baseUrl + config.api.home.getFeaturesList.url).respond(returnData); + + service.getFeaturesList().then(function(response) { + expect(response.data).toBeDefined(); + expect(Array.isArray(response.data)).toBeTruthy(); + }); + httpBackend.flush(); + }); + + it('Service List response is not of array type', function() { + var data = {}; + httpBackend.whenGET(config.common.baseUrl + config.api.home.getFeaturesList.url).respond(200, data); + + var returnData = {}; + httpBackend.expectGET(config.common.baseUrl + config.api.home.getFeaturesList.url).respond(returnData); + + service.getFeaturesList().then(function(response) { + expect(response.data).toBeDefined(); + expect(Array.isArray(response.data)).toBeFalsy(); + }); + httpBackend.flush(); + }); + + it('Service List response should contain service details', function() { + var returnData = {}; + var data = [{ + "csarId": "26b4d6c4-a157-43c0-8ebc-9d6af1d6c40c", + "name": "clearwater_vnf", + "downloadUri": "null/files/catalog-http/NFAR/Canonical/clearwater_vnf/v1.0/clearwater_vnf.csar", + "report": "/Demo/reports/b3232e0c-3843-4df8-88e7-734cf2d7a97c/report.html", + "size": "1.8 MB", + "version": "v1.0", + "provider": "Canonical", + "type": "NFAR", + "format": "yaml", + "deletionPending": false, + "createTime": "2017-02-22 08:59:06", + "modifyTime": "2017-02-22 08:59:06", + "shortDesc": "", + "details": "", + "remarks": "" + }]; + httpBackend.whenGET(config.common.baseUrl + config.api.home.getFeaturesList.url).respond(200, data); + + httpBackend.expectGET(config.common.baseUrl + config.api.home.getFeaturesList.url).respond(returnData); + service.getFeaturesList().then(function(response) { + expect(response.data).toBeDefined(); + var serviceDetails = response.data[0]; + expect(serviceDetails.csarId).toBeDefined(); + expect(serviceDetails.name).toBeDefined(); + expect(serviceDetails.downloadUri).toBeDefined(); + expect(serviceDetails.report).toBeDefined(); + expect(serviceDetails.size).toBeDefined(); + expect(serviceDetails.version).toBeDefined(); + expect(serviceDetails.provider).toBeDefined(); + expect(serviceDetails.type).toBeDefined(); + expect(serviceDetails.format).toBeDefined(); + expect(serviceDetails.deletionPending).toBeDefined(); + expect(serviceDetails.createTime).toBeDefined(); + expect(serviceDetails.modifyTime).toBeDefined(); + expect(serviceDetails.shortDesc).toBeDefined(); + expect(serviceDetails.details).toBeDefined(); + expect(serviceDetails.remarks).toBeDefined(); + }); + httpBackend.flush(); + }); + + it('Should match the path Module name', function() { + $location.path('/marketplace'); + expect($location.path()).toBe('/marketplace'); + }); + + it('Path to the state home has to be defined', function() { + expect(state.href("home")).toBe('#!'); + }); + + it('Path to the state home.marketplace has to be defined', function() { + expect(state.href("home.marketplace")).toBe('#!/marketplace'); + }); + + it('Path to the state home.serviceDetails has to be defined', function() { + expect(state.href("home.serviceDetails")).toBe('#!/serviceDetails'); + }); + + it('When a state is invalid', function() { + expect(state.href("blah")).toBeNull('/marketplace'); + }); + }); +})(); \ No newline at end of file -- cgit 1.2.3-korg