public void TestSerialiseDeserialiseBOPropStatusIsIncluded() { //---------------Set up test pack------------------- ClassDef.ClassDefs.Clear(); BORegistry.DataAccessor = new DataAccessorInMemory(); Structure.Car.LoadDefaultClassDef(); OrganisationPerson.LoadDefaultClassDef(); Person.LoadDefaultClassDef(); Person originalPerson = Person.CreateSavedPerson(); IFormatter formatter = new BinaryFormatter(); MemoryStream memoryStream = new MemoryStream(); FixtureEnvironment.ClearBusinessObjectManager(); originalPerson.FirstName = "Bob"; //---------------Assert PreConditions--------------- Assert.IsTrue(originalPerson.Props["FirstName"].IsDirty); //---------------Execute Test ---------------------- formatter.Serialize(memoryStream, originalPerson); memoryStream.Seek(0, SeekOrigin.Begin); Person deserialisedPerson = (Person)formatter.Deserialize(memoryStream); //---------------Test Result ----------------------- Assert.IsTrue(deserialisedPerson.Props["FirstName"].IsDirty); }
public void TestSerialiseDeserialiseBusinessObjectCollection_EventsAreSetUp() { //---------------Set up test pack------------------- ClassDef.ClassDefs.Clear(); BORegistry.DataAccessor = new DataAccessorInMemory(); Structure.Car.LoadDefaultClassDef(); OrganisationPerson.LoadDefaultClassDef(); Person.LoadDefaultClassDef(); BusinessObjectCollection <Person> originalPeople = new BusinessObjectCollection <Person>(); Person person1 = Person.CreateSavedPerson(); originalPeople.Add(person1); IFormatter formatter = new BinaryFormatter(); MemoryStream memoryStream = new MemoryStream(); FixtureEnvironment.ClearBusinessObjectManager(); bool eventFired = false; //---------------Execute Test ---------------------- formatter.Serialize(memoryStream, originalPeople); memoryStream.Seek(0, SeekOrigin.Begin); BusinessObjectCollection <Person> deserialisedPeople = (BusinessObjectCollection <Person>)formatter.Deserialize(memoryStream); deserialisedPeople.BusinessObjectPropertyUpdated += (sender, args) => eventFired = true; deserialisedPeople[0].FirstName = "new firstname"; //---------------Test Result ----------------------- Assert.IsTrue(eventFired); }
public void Test_Serialise_AddBOPropAndDeserialise() { //---------------Set up test pack------------------- ClassDef.ClassDefs.Clear(); BORegistry.DataAccessor = new DataAccessorInMemory(); Structure.Car.LoadDefaultClassDef(); OrganisationPerson.LoadDefaultClassDef(); IClassDef personClassDef = Person.LoadDefaultClassDef(); Person originalPerson = Person.CreateSavedPerson(); IFormatter formatter = new BinaryFormatter(); MemoryStream memoryStream = new MemoryStream(); FixtureEnvironment.ClearBusinessObjectManager(); //---------------Execute Test ---------------------- formatter.Serialize(memoryStream, originalPerson); const string newpropertyName = "NewProperty"; const string defaultValue = "some Default"; personClassDef.PropDefcol.Add(new PropDef(newpropertyName, typeof(string), PropReadWriteRule.ReadWrite, defaultValue)); memoryStream.Seek(0, SeekOrigin.Begin); Person deserialisedPerson = (Person)formatter.Deserialize(memoryStream); //---------------Test Result ----------------------- Assert.AreNotSame(deserialisedPerson, originalPerson); AssertPersonsAreEqual(originalPerson, deserialisedPerson); Assert.AreEqual(defaultValue, deserialisedPerson.GetPropertyValue(newpropertyName)); }
public void TestSerialiseDeserialiseBusinessObjectCollection_HavingAllCollections() { //---------------Set up test pack------------------- ClassDef.ClassDefs.Clear(); BORegistry.DataAccessor = new DataAccessorInMemory(); Structure.Car.LoadDefaultClassDef(); OrganisationPerson.LoadDefaultClassDef(); Person.LoadDefaultClassDef(); BusinessObjectCollection <Person> originalPeople = new BusinessObjectCollection <Person>(); Person persistedPerson = originalPeople.CreateBusinessObject(); Person deletedPerson = originalPeople.CreateBusinessObject(); Person removedPerson = originalPeople.CreateBusinessObject(); originalPeople.SaveAll(); originalPeople.Remove(removedPerson); deletedPerson.MarkForDelete(); Person createdPerson = originalPeople.CreateBusinessObject(); Person addedPerson = new Person(); addedPerson.Save(); originalPeople.Add(addedPerson); IFormatter formatter = new BinaryFormatter(); MemoryStream memoryStream = new MemoryStream(); FixtureEnvironment.ClearBusinessObjectManager(); //---------------Assert PreConditions--------------- Assert.AreEqual(1, originalPeople.MarkedForDeleteBusinessObjects.Count); Assert.AreEqual(1, originalPeople.RemovedBusinessObjects.Count); Assert.AreEqual(1, originalPeople.AddedBusinessObjects.Count); Assert.AreEqual(3, originalPeople.PersistedBusinessObjects.Count); Assert.AreEqual(1, originalPeople.CreatedBusinessObjects.Count); Assert.AreEqual(3, originalPeople.Count); //---------------Execute Test ---------------------- formatter.Serialize(memoryStream, originalPeople); memoryStream.Seek(0, SeekOrigin.Begin); BusinessObjectCollection <Person> deserialisedPeople = (BusinessObjectCollection <Person>)formatter.Deserialize(memoryStream); //---------------Test Result ----------------------- Assert.AreEqual(originalPeople.Count, deserialisedPeople.Count); Assert.AreEqual(originalPeople.PersistedBusinessObjects.Count, deserialisedPeople.PersistedBusinessObjects.Count); Assert.AreEqual(originalPeople.CreatedBusinessObjects.Count, deserialisedPeople.CreatedBusinessObjects.Count); Assert.AreEqual(originalPeople.AddedBusinessObjects.Count, deserialisedPeople.AddedBusinessObjects.Count); Assert.AreEqual(originalPeople.RemovedBusinessObjects.Count, deserialisedPeople.RemovedBusinessObjects.Count); Assert.AreEqual(originalPeople.MarkedForDeleteBusinessObjects.Count, deserialisedPeople.MarkedForDeleteBusinessObjects.Count); AssertPersonsAreEqual(deserialisedPeople.MarkedForDeleteBusinessObjects[0], deletedPerson); AssertPersonsAreEqual(deserialisedPeople.RemovedBusinessObjects[0], removedPerson); AssertPersonsAreEqual(deserialisedPeople.AddedBusinessObjects[0], addedPerson); AssertPersonsAreEqual(deserialisedPeople.PersistedBusinessObjects[0], persistedPerson); AssertPersonsAreEqual(deserialisedPeople.CreatedBusinessObjects[0], createdPerson); }
public void Test_SerialiseDeserialise_ReturnsCorrectType() { //---------------Set up test pack------------------- ClassDef.ClassDefs.Clear(); BORegistry.DataAccessor = new DataAccessorInMemory(); Structure.Car.LoadDefaultClassDef(); OrganisationPerson.LoadDefaultClassDef(); Person.LoadDefaultClassDef(); Person originalPerson = Person.CreateSavedPerson(); IFormatter formatter = new BinaryFormatter(); MemoryStream memoryStream = new MemoryStream(); FixtureEnvironment.ClearBusinessObjectManager(); //---------------Execute Test ---------------------- formatter.Serialize(memoryStream, originalPerson); memoryStream.Seek(0, SeekOrigin.Begin); Object deserialisedPerson = formatter.Deserialize(memoryStream); //---------------Test Result ----------------------- Assert.IsInstanceOf(typeof(Person), deserialisedPerson); }
public void Test_SerialiseAndDeserialise() { //---------------Set up test pack------------------- ClassDef.ClassDefs.Clear(); BORegistry.DataAccessor = new DataAccessorInMemory(); Structure.Car.LoadDefaultClassDef(); OrganisationPerson.LoadDefaultClassDef(); Person.LoadDefaultClassDef(); Person originalPerson = Person.CreateSavedPerson(); IFormatter formatter = new BinaryFormatter(); MemoryStream memoryStream = new MemoryStream(); FixtureEnvironment.ClearBusinessObjectManager(); //---------------Execute Test ---------------------- formatter.Serialize(memoryStream, originalPerson); memoryStream.Seek(0, SeekOrigin.Begin); Person deserialisedPerson = (Person)formatter.Deserialize(memoryStream); //---------------Test Result ----------------------- Assert.AreNotSame(deserialisedPerson, originalPerson); AssertPersonsAreEqual(originalPerson, deserialisedPerson); }
public void TestSerialiseDeserialiseBusinessObjectCollection() { //---------------Set up test pack------------------- ClassDef.ClassDefs.Clear(); BORegistry.DataAccessor = new DataAccessorInMemory(); Structure.Car.LoadDefaultClassDef(); OrganisationPerson.LoadDefaultClassDef(); Person.LoadDefaultClassDef(); BusinessObjectCollection <Person> originalPeople = new BusinessObjectCollection <Person>(); Person person1 = Person.CreateSavedPerson(); originalPeople.Add(person1); Person person2 = Person.CreateSavedPerson(); originalPeople.Add(person2); Person person3 = Person.CreateSavedPerson(); originalPeople.Add(person3); IFormatter formatter = new BinaryFormatter(); MemoryStream memoryStream = new MemoryStream(); FixtureEnvironment.ClearBusinessObjectManager(); //---------------Execute Test ---------------------- formatter.Serialize(memoryStream, originalPeople); memoryStream.Seek(0, SeekOrigin.Begin); BusinessObjectCollection <Person> deserialisedPeople = (BusinessObjectCollection <Person>)formatter.Deserialize(memoryStream); //---------------Test Result ----------------------- Assert.AreEqual(originalPeople.Count, deserialisedPeople.Count); Assert.AreNotSame(originalPeople, deserialisedPeople); AssertPersonsAreEqual(deserialisedPeople[0], originalPeople[0]); AssertPersonsAreEqual(deserialisedPeople[1], originalPeople[1]); AssertPersonsAreEqual(deserialisedPeople[2], originalPeople[2]); }