public void TestModelMapper() { var service1 = new ServiceClass() { Id = new Guid("51438b2f-4cd7-4e02-0000-000100000000"), Name = "John", Length = 1024, Nullable1 = 10, Nullable2 = null, Pi = 3.14, When = DateTime.SpecifyKind(new DateTime(2013, 06, 24, 8, 0, 0), DateTimeKind.Utc), AnotherWhen = new TimeSpan(6, 12, 8, 0), MaybeId = new Guid("51438b2f-4cd7-4e02-0000-033300000000"), Thing = new ServiceThing { Name = "X", Value = "123" }, Stuff = new List<string> { "A", "B", "C" }, Links = new List<Guid> { new Guid("51438b2f-4cd7-ff02-0000-000100000000"), new Guid("51438b2f-4cd7-ff02-0000-000200000000") }, Things = new List<ServiceThing> { new ServiceThing { Name = "Blue", Value="0000FF" } }, Mapping = new Dictionary<string, string> { { "A", "1" }, { "B", "2" }, { "C", "2" } }, Contents = "{ \"list\" : [\"1\", \"2\", \"3\"], \"anotherList\" : [\"A\", \"B\", \"C\"] }" }; var data = service1.CopyAsNew<DataClass>(); var service2 = data.CopyAsNew<ServiceClass>(); Assert.AreEqual(service1.Id, service2.Id); Assert.AreEqual(service1.Name, service2.Name); Assert.AreEqual(service1.Length, service2.Length); Assert.AreEqual(service1.Nullable1, service2.Nullable1); Assert.AreEqual(service1.Nullable2, service2.Nullable2); Assert.AreEqual(service1.Pi, service2.Pi); Assert.AreEqual(service1.When, service2.When); Assert.AreEqual(service1.AnotherWhen, service2.AnotherWhen); Assert.AreEqual(service1.MaybeId, service2.MaybeId); CollectionAssert.AreEqual(service1.Stuff, service2.Stuff); CollectionAssert.AreEqual(service1.Links, service2.Links); CollectionAssert.AreEqual(service1.Things, service2.Things); CollectionAssert.AreEqual(service1.Mapping, service2.Mapping); Assert.AreEqual(service1.Contents, service2.Contents); }
public void TestCustomTypeCopying() { PropertyCopier.ClearTypeConverters(); PropertyCopier.AddTypeConverter<MyId, ObjectId>(fromValue => new ObjectId(((MyId)fromValue).Id)); PropertyCopier.AddTypeConverter<ObjectId, MyId>(fromValue => new MyId((ObjectId)fromValue)); ServiceClass service1 = new ServiceClass() { Id = MyId.GenerateNewId(), Ids = new MyId[] { MyId.GenerateNewId(), MyId.GenerateNewId() }, MoreIds = new List<MyId> { MyId.GenerateNewId(), MyId.GenerateNewId() } }; var data = service1.CopyAsNew<DataClass>(); var service2 = data.CopyAsNew<ServiceClass>(); Assert.AreEqual(service1.Id, service2.Id); CollectionAssert.AreEqual(service1.Ids, service2.Ids); CollectionAssert.AreEqual(service1.MoreIds, service2.MoreIds); }