[Composition] Disallow composition for leaf types

Disallow composition for domain object types which will
not have a composition property; WTD-1221.
This commit is contained in:
Victor Woeltjen
2015-06-03 13:46:25 -07:00
parent e452921729
commit 2648f01966
6 changed files with 64 additions and 3 deletions

View File

@@ -0,0 +1,26 @@
/*global define,Promise,describe,it,expect,beforeEach,waitsFor,jasmine*/
define(
["../src/CompositionModelPolicy"],
function (CompositionModelPolicy) {
"use strict";
describe("The composition model policy", function () {
var mockType,
policy;
beforeEach(function () {
mockType = jasmine.createSpyObj('type', ['getInitialModel']);
policy = new CompositionModelPolicy();
});
it("only allows composition for types which will have a composition property", function () {
mockType.getInitialModel.andReturn({});
expect(policy.allow(mockType)).toBeFalsy();
mockType.getInitialModel.andReturn({ composition: [] });
expect(policy.allow(mockType)).toBeTruthy();
});
});
}
);

View File

@@ -35,7 +35,7 @@ define(
policy = new CompositionMutabilityPolicy();
});
it("only allows composition for types which will have a composition capability", function () {
it("only allows composition for types which can be created/modified", function () {
expect(policy.allow(mockType)).toBeFalsy();
mockType.hasFeature.andReturn(true);
expect(policy.allow(mockType)).toBeTruthy();

View File

@@ -1,6 +1,7 @@
[
"CapabilityTable",
"ComposeActionPolicy",
"CompositionModelPolicy",
"CompositionMutabilityPolicy",
"CompositionPolicy",
"ContainmentTable"