From 6dbccd50009e4431a0e6d334ca0919b013315173 Mon Sep 17 00:00:00 2001 From: Victor Woeltjen Date: Wed, 23 Sep 2015 12:43:03 -0700 Subject: [PATCH] [Entanglement] Update test cases around error-throwing ...per code review feedback, nasa/openmctweb#97 --- .../test/services/CopyServiceSpec.js | 57 ++++++++++++------- .../test/services/LinkServiceSpec.js | 9 +-- .../test/services/MoveServiceSpec.js | 9 +-- 3 files changed, 47 insertions(+), 28 deletions(-) diff --git a/platform/entanglement/test/services/CopyServiceSpec.js b/platform/entanglement/test/services/CopyServiceSpec.js index 0df6663bd7..b32eda40b6 100644 --- a/platform/entanglement/test/services/CopyServiceSpec.js +++ b/platform/entanglement/test/services/CopyServiceSpec.js @@ -131,6 +131,15 @@ define( copyResult, copyFinished; + beforeEach(function () { + creationService = jasmine.createSpyObj( + 'creationService', + ['createObject'] + ); + createObjectPromise = synchronousPromise(undefined); + creationService.createObject.andReturn(createObjectPromise); + }); + describe("on domain object without composition", function () { beforeEach(function () { object = domainObjectFactory({ @@ -147,12 +156,6 @@ define( composition: [] } }); - creationService = jasmine.createSpyObj( - 'creationService', - ['createObject'] - ); - createObjectPromise = synchronousPromise(undefined); - creationService.createObject.andReturn(createObjectPromise); copyService = new CopyService(null, creationService, policyService); copyResult = copyService.perform(object, newParent); copyFinished = jasmine.createSpy('copyFinished'); @@ -240,10 +243,6 @@ define( composition: [] } }); - creationService = jasmine.createSpyObj( - 'creationService', - ['createObject'] - ); policyService.allow.andReturn(true); createObjectPromise = synchronousPromise(newObject); @@ -285,18 +284,36 @@ define( }); }); - it("throws an expection when performed on invalid inputs", function () { - var copyService = - new CopyService(mockQ, creationService, policyService); + describe("on invalid inputs", function () { + beforeEach(function () { + object = domainObjectFactory({ + name: 'object', + capabilities: { + type: { type: 'object' } + } + }); + newParent = domainObjectFactory({ + name: 'parentCandidate', + capabilities: { + type: { type: 'parentCandidate' } + } + }); + }); - function perform() { - copyService.perform(object, newParent); - } + it("throws an error", function () { + var copyService = + new CopyService(mockQ, creationService, policyService); - policyService.allow.andReturn(true); - expect(perform).not.toThrow(); - policyService.allow.andReturn(false); // Cause validate to fail - expect(perform).toThrow(); + function perform() { + copyService.perform(object, newParent); + } + + spyOn(copyService, "validate"); + copyService.validate.andReturn(true); + expect(perform).not.toThrow(); + copyService.validate.andReturn(false); + expect(perform).toThrow(); + }); }); }); diff --git a/platform/entanglement/test/services/LinkServiceSpec.js b/platform/entanglement/test/services/LinkServiceSpec.js index 37e58c97d8..24ecf7a801 100644 --- a/platform/entanglement/test/services/LinkServiceSpec.js +++ b/platform/entanglement/test/services/LinkServiceSpec.js @@ -20,7 +20,7 @@ * at runtime from the About dialog for additional information. *****************************************************************************/ -/*global define,describe,beforeEach,it,jasmine,expect */ +/*global define,describe,beforeEach,it,jasmine,expect,spyOn */ define( [ @@ -221,14 +221,15 @@ define( expect(whenComplete).toHaveBeenCalledWith(linkedObject); }); - it("throws an expection when performed on invalid inputs", function () { + it("throws an error when performed on invalid inputs", function () { function perform() { linkService.perform(object, parentObject); } - mockPolicyService.allow.andReturn(true); + spyOn(linkService, 'validate'); + linkService.validate.andReturn(true); expect(perform).not.toThrow(); - mockPolicyService.allow.andReturn(false); // Cause validate to fail + linkService.validate.andReturn(false); expect(perform).toThrow(); }); }); diff --git a/platform/entanglement/test/services/MoveServiceSpec.js b/platform/entanglement/test/services/MoveServiceSpec.js index 7bf7d0372f..0eb9943dd8 100644 --- a/platform/entanglement/test/services/MoveServiceSpec.js +++ b/platform/entanglement/test/services/MoveServiceSpec.js @@ -20,7 +20,7 @@ * at runtime from the About dialog for additional information. *****************************************************************************/ -/*global define,describe,beforeEach,it,jasmine,expect */ +/*global define,describe,beforeEach,it,jasmine,expect,spyOn */ define( [ '../../src/services/MoveService', @@ -196,14 +196,15 @@ define( .toHaveBeenCalledWith(jasmine.any(Function)); }); - it("throws an expection when performed on invalid inputs", function () { + it("throws an error when performed on invalid inputs", function () { function perform() { moveService.perform(object, newParent); } - policyService.allow.andReturn(true); + spyOn(moveService, "validate"); + moveService.validate.andReturn(true); expect(perform).not.toThrow(); - policyService.allow.andReturn(false); // Cause validate to fail + moveService.validate.andReturn(false); expect(perform).toThrow(); });