Esempio n. 1
0
        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);
        }