public CollectionMemento(ILifecycleManager lifecycleManager, INakedObjectManager nakedObjectManager, IMetamodelManager metamodel, CollectionMemento otherMemento, object[] selectedObjects) : this(lifecycleManager, nakedObjectManager, metamodel) { Assert.AssertNotNull(otherMemento); IsPaged = otherMemento.IsPaged; IsNotQueryable = otherMemento.IsNotQueryable; Target = otherMemento.Target; Action = otherMemento.Action; Parameters = otherMemento.Parameters; SelectedObjects = selectedObjects; }
public void TestActionValueParmString() { TestDomainObject target = NakedObjectsFramework.Persistor.Instances<TestDomainObject>().Single(i => i.Id == 1); INakedObjectAdapter targetNo = NakedObjectsFramework.NakedObjectManager.CreateAdapter(target, null, null); IActionSpec actionSpec = targetNo.Spec.GetActions().Single(a => a.Id == "Action6"); var memento = new CollectionMemento(NakedObjectsFramework.LifecycleManager, NakedObjectsFramework.NakedObjectManager, NakedObjectsFramework.MetamodelManager, targetNo, actionSpec, new[] {NakedObjectsFramework.NakedObjectManager.CreateAdapter("1", null, null)}); RoundTrip(memento); RecoverCollection(target.Action6("1"), memento, NakedObjectsFramework.NakedObjectManager); }
public void TestActionObjectCollectionParmEmpty() { TestDomainObject target = NakedObjectsFramework.Persistor.Instances<TestDomainObject>().Single(i => i.Id == 1); INakedObjectAdapter targetNo = NakedObjectsFramework.NakedObjectManager.CreateAdapter(target, null, null); IActionSpec actionSpec = targetNo.Spec.GetActions().Single(a => a.Id == "Action5"); var rawParm = new List<TestDomainObject>(); INakedObjectAdapter parm = NakedObjectsFramework.NakedObjectManager.CreateAdapter(rawParm, null, null); var memento = new CollectionMemento(NakedObjectsFramework.LifecycleManager, NakedObjectsFramework.NakedObjectManager, NakedObjectsFramework.MetamodelManager, targetNo, actionSpec, new[] {parm}); RoundTrip(memento); RecoverCollection(target.Action5(rawParm), memento, NakedObjectsFramework.NakedObjectManager); }
public void TestActionNoParmsWithSelected() { TestDomainObject target = NakedObjectsFramework.Persistor.Instances<TestDomainObject>().Single(i => i.Id == 1); INakedObjectAdapter targetNo = NakedObjectsFramework.NakedObjectManager.CreateAdapter(target, null, null); IActionSpec actionSpec = targetNo.Spec.GetActions().Single(a => a.Id == "Action1"); var memento = new CollectionMemento(NakedObjectsFramework.LifecycleManager, NakedObjectsFramework.NakedObjectManager, NakedObjectsFramework.MetamodelManager, targetNo, actionSpec, new INakedObjectAdapter[] {}); var selectedMemento = new CollectionMemento(NakedObjectsFramework.LifecycleManager, NakedObjectsFramework.NakedObjectManager, NakedObjectsFramework.MetamodelManager, memento, new object[] {target}); RoundTrip(selectedMemento); IEnumerable<TestDomainObject> recoveredCollection = selectedMemento.RecoverCollection().GetAsEnumerable(NakedObjectsFramework.NakedObjectManager).Select(AdapterUtils.GetDomainObject<TestDomainObject>); Assert.IsFalse(target.Action1().SequenceEqual(recoveredCollection), "recovered selected collection same as original"); IEnumerable<TestDomainObject> selectedCollection = target.Action1().Where(tdo => tdo.Id == target.Id); Assert.IsTrue(selectedCollection.SequenceEqual(recoveredCollection), "recovered selected collection not same as original selected collection"); }
public void TestActionNoParmsTransient() { INakedObjectAdapter targetNo = NakedObjectsFramework.LifecycleManager.CreateInstance((IObjectSpec) NakedObjectsFramework.MetamodelManager.GetSpecification(typeof (TestDomainObject))); IActionSpec actionSpec = targetNo.Spec.GetActions().Single(a => a.Id == "Action1"); var memento = new CollectionMemento(NakedObjectsFramework.LifecycleManager, NakedObjectsFramework.NakedObjectManager, NakedObjectsFramework.MetamodelManager, targetNo, actionSpec, new INakedObjectAdapter[] {}); RoundTrip(memento); RecoverCollection(targetNo.GetDomainObject<TestDomainObject>().Action1(), memento, NakedObjectsFramework.NakedObjectManager); }
private void RecoverCollection(IEnumerable<TestDomainObject> originalCollection, CollectionMemento memento, INakedObjectManager manager) { IEnumerable<TestDomainObject> recoveredCollection = memento.RecoverCollection().GetAsEnumerable(manager).Select(AdapterUtils.GetDomainObject<TestDomainObject>); List<TestDomainObject> oc = originalCollection.ToList(); List<TestDomainObject> rc = recoveredCollection.ToList(); Assert.IsTrue(oc.SequenceEqual(rc), "recovered collection not same as original"); }
private void RoundTrip(CollectionMemento memento) { string[] strings1 = memento.ToEncodedStrings(); var newMemento = new CollectionMemento(NakedObjectsFramework.LifecycleManager, NakedObjectsFramework.NakedObjectManager, NakedObjectsFramework.MetamodelManager, strings1); string[] strings2 = newMemento.ToEncodedStrings(); Assert.IsTrue(strings1.SequenceEqual(strings2), "memento failed roundtrip"); var copyMemento = new CollectionMemento(NakedObjectsFramework.LifecycleManager, NakedObjectsFramework.NakedObjectManager, NakedObjectsFramework.MetamodelManager, memento, new object[] {}); string[] strings3 = copyMemento.ToEncodedStrings(); Assert.IsTrue(strings1.SequenceEqual(strings3), "memento failed copy"); }