[Entanglement] Link service returns object in new context

The link service return the object in the new context.
This commit is contained in:
Pete Richards 2015-08-06 14:55:50 -07:00
parent 4c56e4ffdc
commit 4a755e259f
3 changed files with 26 additions and 20 deletions

View File

@ -66,6 +66,17 @@ define(
}
}).then(function () {
return parentObject.getCapability('persistence').persist();
}).then(function getObjectWithNewContext() {
return parentObject
.useCapability('composition')
.then(function (children) {
var i;
for (i = 0; i < children.length; i += 1) {
if (children[i].getId() === object.getId()) {
return children[i];
}
}
});
});
}
};

View File

@ -25,7 +25,8 @@
define(
[
'../../src/services/LinkService',
'../DomainObjectFactory'
'../DomainObjectFactory',
'../ControlledPromise'
],
function (LinkService, domainObjectFactory) {
"use strict";
@ -177,6 +178,11 @@ define(
expect(persistenceCapability.persist).toHaveBeenCalled();
});
it("returns object representing new link", function () {
linkService.perform(object, parentObject);
});
});
});
}

View File

@ -23,7 +23,10 @@
/*global define,jasmine */
define(
function () {
[
'../ControlledPromise'
],
function (ControlledPromise) {
"use strict";
/**
@ -67,26 +70,12 @@ define(
callExtensions,
spy;
performPromise = jasmine.createSpyObj(
'performPromise',
['then']
);
performPromise = new ControlledPromise();
callExtensions = {
promise: performPromise,
resolve: function (resolveWith) {
performPromise.then.calls.forEach(function (call) {
call.args[0](resolveWith);
});
}
};
this.perform.mostRecentCall.promise = performPromise;
this.perform.calls[this.perform.calls.length - 1].promise =
performPromise;
spy = this.perform;
Object.keys(callExtensions).forEach(function (key) {
spy.mostRecentCall[key] = callExtensions[key];
spy.calls[spy.calls.length - 1][key] = callExtensions[key];
});
return performPromise;
});