public void ManyToOneSortByPropertyOtherThanIdTest() { // Arrange var user1 = new User2 { Id = 1, Name = "User1", UserTypeName = "Example Users" }; var user2 = new User2 { Id = 2, Name = "User2", UserTypeName = "Example Users" }; var entities = new List <User2> { user1, user2 }; var userType1 = new UserType { Id = 3, Name = "Example Users" }; var relatedObjectJson = new JRaw(JsonConvert.SerializeObject(userType1)); var relatedEntity1 = new RelatedEntity { Object = relatedObjectJson }; var relatedEntities = new List <RelatedEntity> { relatedEntity1 }; var sorterDictionary = new SortMethodDictionary <User2>(); var sortDetails = new SortDetails { EntityName = "User", RelatedEntity = "UserType", EntityToRelatedEntityProperty = "UserTypeName", RelatedEntityType = RelatedEntity.Type.ManyToOne, RelatedEntityIdProperty = "Name" }; // Act var actualCollections = sorterDictionary[RelatedEntity.Type.ManyToOne](entities, relatedEntities, sortDetails); // Assert Assert.AreEqual(2, actualCollections.Count); Assert.AreEqual("User", actualCollections[0].Entity); Assert.AreEqual("UserType", actualCollections[0].RelatedEntity); Assert.AreEqual("1", actualCollections[0].EntityId); Assert.AreEqual(1, actualCollections[0].RelatedEntities.Count); Assert.AreEqual(relatedObjectJson, actualCollections[0].RelatedEntities[0].Object); Assert.AreEqual("User", actualCollections[1].Entity); Assert.AreEqual("UserType", actualCollections[1].RelatedEntity); Assert.AreEqual("2", actualCollections[1].EntityId); Assert.AreEqual(1, actualCollections[1].RelatedEntities.Count); Assert.AreEqual(relatedObjectJson, actualCollections[1].RelatedEntities[0].Object); }
public void GetRelatedEntitiesByPropertyOtherThanIdTest() { // Arrange var userType1 = new UserType { Id = 1, Name = "Internal" }; var userType2 = new UserType { Id = 2, Name = "Customer" }; var entities = new List <UserType> { userType1, userType2 }; var user1 = new User2 { Id = 1, Name = "User1", UserTypeName = "Internal" }; var relatedObjectJson1 = new JRaw(JsonConvert.SerializeObject(user1)); var relatedEntity1 = new RelatedEntity { Object = relatedObjectJson1 }; var user2 = new User2 { Id = 2, Name = "User2", UserTypeName = "Internal" }; var relatedObjectJson2 = new JRaw(JsonConvert.SerializeObject(user2)); var relatedEntity2 = new RelatedEntity { Object = relatedObjectJson2 }; var user3 = new User2 { Id = 3, Name = "User3", UserTypeName = "Customer" }; var relatedObjectJson3 = new JRaw(JsonConvert.SerializeObject(user3)); var relatedEntity3 = new RelatedEntity { Object = relatedObjectJson3 }; var user4 = new User2 { Id = 4, Name = "User4", UserTypeName = "Customer" }; var relatedObjectJson4 = new JRaw(JsonConvert.SerializeObject(user4)); var relatedEntity4 = new RelatedEntity { Object = relatedObjectJson4 }; var relatedEntities = new List <RelatedEntity> { relatedEntity1, relatedEntity2, relatedEntity3, relatedEntity4 }; var sorterDictionary = new SortMethodDictionary <UserType>(); var sortDetails = new SortDetails { EntityName = "UserType", RelatedEntity = "User2", EntityProperty = "Name", EntityToRelatedEntityProperty = "UserTypeName", RelatedEntityType = RelatedEntity.Type.OneToMany }; // Act var actualCollections = sorterDictionary[RelatedEntity.Type.OneToMany](entities, relatedEntities, sortDetails); // Assert Assert.AreEqual(2, actualCollections.Count); Assert.AreEqual("UserType", actualCollections[0].Entity); Assert.AreEqual("User2", actualCollections[0].RelatedEntity); Assert.AreEqual("1", actualCollections[0].EntityId); Assert.AreEqual(2, actualCollections[0].RelatedEntities.Count); Assert.AreEqual(relatedObjectJson1, actualCollections[0].RelatedEntities[0].Object); Assert.AreEqual(relatedObjectJson2, actualCollections[0].RelatedEntities[1].Object); Assert.AreEqual("UserType", actualCollections[1].Entity); Assert.AreEqual("User2", actualCollections[1].RelatedEntity); Assert.AreEqual("2", actualCollections[1].EntityId); Assert.AreEqual(2, actualCollections[1].RelatedEntities.Count); Assert.AreEqual(relatedObjectJson3, actualCollections[1].RelatedEntities[0].Object); Assert.AreEqual(relatedObjectJson4, actualCollections[1].RelatedEntities[1].Object); }