예제 #1
0
        public void TestThatForeignKeyAddAddsForeignKey()
        {
            var foodItem = new FoodItem(DomainObjectMockBuilder.BuildFoodGroupMock())
            {
                Identifier = Guid.NewGuid()
            };

            Assert.That(foodItem, Is.Not.Null);
            Assert.That(foodItem.Identifier, Is.Not.Null);
            Assert.That(foodItem.Identifier.HasValue, Is.True);
            Assert.That(foodItem.ForeignKeys, Is.Not.Null);
            Assert.That(foodItem.ForeignKeys, Is.Empty);

            // ReSharper disable PossibleInvalidOperationException
            var foreignKeyMock = DomainObjectMockBuilder.BuildForeignKeyMock(foodItem.Identifier.Value, foodItem.GetType());

            // ReSharper restore PossibleInvalidOperationException
            Assert.That(foreignKeyMock, Is.Not.Null);

            foodItem.ForeignKeyAdd(foreignKeyMock);
            Assert.That(foodItem.ForeignKeys, Is.Not.Null);
            Assert.That(foodItem.ForeignKeys, Is.Not.Empty);
            Assert.That(foodItem.ForeignKeys.Count(), Is.EqualTo(1));
            Assert.That(foodItem.ForeignKeys.Contains(foreignKeyMock), Is.True);
        }
예제 #2
0
        public void TestThatFoodGroupAddAddsFoodGroup()
        {
            var primaryFoodGroupMock = DomainObjectMockBuilder.BuildFoodGroupMock();

            Assert.That(primaryFoodGroupMock, Is.Not.Null);
            Assert.That(primaryFoodGroupMock.Identifier, Is.Not.Null);
            Assert.That(primaryFoodGroupMock.Identifier.HasValue, Is.True);

            var foodItem = new FoodItem(primaryFoodGroupMock);

            Assert.That(foodItem, Is.Not.Null);
            Assert.That(foodItem.FoodGroups, Is.Not.Null);
            Assert.That(foodItem.FoodGroups, Is.Not.Empty);
            Assert.That(foodItem.FoodGroups.Count(), Is.EqualTo(1));
            Assert.That(foodItem.FoodGroups.Contains(primaryFoodGroupMock), Is.True);

            var foodGroupMock = DomainObjectMockBuilder.BuildFoodGroupMock();

            Assert.That(foodGroupMock, Is.Not.Null);
            Assert.That(foodGroupMock.Identifier, Is.Not.Null);
            Assert.That(foodGroupMock.Identifier.HasValue, Is.True);
            // ReSharper disable PossibleInvalidOperationException
            Assert.That(foodGroupMock.Identifier.Value, Is.Not.EqualTo(primaryFoodGroupMock.Identifier.Value));
            // ReSharper restore PossibleInvalidOperationException

            foodItem.FoodGroupAdd(foodGroupMock);
            Assert.That(foodItem.FoodGroups, Is.Not.Null);
            Assert.That(foodItem.FoodGroups, Is.Not.Empty);
            Assert.That(foodItem.FoodGroups.Count(), Is.EqualTo(2));
            Assert.That(foodItem.FoodGroups.Contains(primaryFoodGroupMock), Is.True);
            Assert.That(foodItem.FoodGroups.Contains(foodGroupMock), Is.True);
        }
예제 #3
0
        public void TestThatFoodGroupsSetterSetsFoodGroupsWhenPrimaryFoodGroupIsNotNullAndValueDoesNotContainPrimaryFoodGroup()
        {
            var primaryFoodGroupMock = DomainObjectMockBuilder.BuildFoodGroupMock();
            var foodItem             = new MyFoodItem
            {
                PrimaryFoodGroup = primaryFoodGroupMock
            };

            Assert.That(foodItem, Is.Not.Null);
            Assert.That(foodItem.PrimaryFoodGroup, Is.Not.Null);
            Assert.That(foodItem.PrimaryFoodGroup, Is.EqualTo(primaryFoodGroupMock));
            Assert.That(foodItem.FoodGroups, Is.Not.Null);
            Assert.That(foodItem.FoodGroups, Is.Not.Empty);
            Assert.That(foodItem.FoodGroups.Count(), Is.EqualTo(1));
            Assert.That(foodItem.FoodGroups.Contains(primaryFoodGroupMock), Is.True);

            var foodGroupMockCollection = DomainObjectMockBuilder.BuildFoodGroupMockCollection().ToArray();

            Assert.That(foodGroupMockCollection, Is.Not.Null);
            // ReSharper disable PossibleInvalidOperationException
            Assert.That(foodGroupMockCollection.Any(foodGroupMock => foodGroupMock.Identifier.Value == primaryFoodGroupMock.Identifier.Value), Is.False);
            // ReSharper restore PossibleInvalidOperationException

            foodItem.FoodGroups = foodGroupMockCollection;
            Assert.That(foodItem.PrimaryFoodGroup, Is.Not.Null);
            Assert.That(foodItem.PrimaryFoodGroup, Is.EqualTo(primaryFoodGroupMock));
            Assert.That(foodItem.FoodGroups, Is.Not.Null);
            Assert.That(foodItem.FoodGroups, Is.Not.Empty);
            Assert.That(foodItem.FoodGroups.Count(), Is.EqualTo(1 + foodGroupMockCollection.Count()));
            Assert.That(foodItem.FoodGroups.Contains(primaryFoodGroupMock), Is.True);
            foodGroupMockCollection.ForEach(foodGroupMock => Assert.That(foodItem.FoodGroups.Contains(foodGroupMock), Is.True));
        }
예제 #4
0
        public void TestThatRemoveInactiveFoodGroupsRemovesInactiveFoodGroups()
        {
            var primaryFoodGroupMock = DomainObjectMockBuilder.BuildFoodGroupMock(isActive: false);

            Assert.That(primaryFoodGroupMock, Is.Not.Null);
            Assert.That(primaryFoodGroupMock.Identifier, Is.Not.Null);
            Assert.That(primaryFoodGroupMock.Identifier.HasValue, Is.True);
            Assert.That(primaryFoodGroupMock.IsActive, Is.False);

            var activeFoodGroupMock = DomainObjectMockBuilder.BuildFoodGroupMock();

            Assert.That(activeFoodGroupMock, Is.Not.Null);
            Assert.That(activeFoodGroupMock.Identifier, Is.Not.Null);
            Assert.That(activeFoodGroupMock.Identifier.HasValue, Is.True);
            Assert.That(activeFoodGroupMock.IsActive, Is.True);

            var inactiveFoodGroup1Mock = DomainObjectMockBuilder.BuildFoodGroupMock(isActive: false);

            Assert.That(inactiveFoodGroup1Mock, Is.Not.Null);
            Assert.That(inactiveFoodGroup1Mock.Identifier, Is.Not.Null);
            Assert.That(inactiveFoodGroup1Mock.Identifier.HasValue, Is.True);
            Assert.That(inactiveFoodGroup1Mock.IsActive, Is.False);

            var inactiveFoodGroup2Mock = DomainObjectMockBuilder.BuildFoodGroupMock(isActive: false);

            Assert.That(inactiveFoodGroup2Mock, Is.Not.Null);
            Assert.That(inactiveFoodGroup2Mock.Identifier, Is.Not.Null);
            Assert.That(inactiveFoodGroup2Mock.Identifier.HasValue, Is.True);
            Assert.That(inactiveFoodGroup2Mock.IsActive, Is.False);

            var foodItem = new FoodItem(primaryFoodGroupMock);

            Assert.That(foodItem, Is.Not.Null);
            Assert.That(foodItem.PrimaryFoodGroup, Is.Not.Null);
            Assert.That(foodItem.PrimaryFoodGroup, Is.EqualTo(primaryFoodGroupMock));

            foodItem.FoodGroupAdd(activeFoodGroupMock);
            foodItem.FoodGroupAdd(inactiveFoodGroup1Mock);
            foodItem.FoodGroupAdd(inactiveFoodGroup2Mock);
            Assert.That(foodItem.FoodGroups, Is.Not.Null);
            Assert.That(foodItem.FoodGroups, Is.Not.Empty);
            Assert.That(foodItem.FoodGroups.Count(), Is.EqualTo(4));
            Assert.That(foodItem.FoodGroups.Contains(primaryFoodGroupMock), Is.True);
            Assert.That(foodItem.FoodGroups.Contains(activeFoodGroupMock), Is.True);
            Assert.That(foodItem.FoodGroups.Contains(inactiveFoodGroup1Mock), Is.True);
            Assert.That(foodItem.FoodGroups.Contains(inactiveFoodGroup2Mock), Is.True);

            foodItem.RemoveInactiveFoodGroups();

            Assert.That(foodItem.FoodGroups, Is.Not.Null);
            Assert.That(foodItem.FoodGroups, Is.Not.Empty);
            Assert.That(foodItem.FoodGroups.Count(), Is.EqualTo(2));
            Assert.That(foodItem.FoodGroups.Contains(primaryFoodGroupMock), Is.True);
            Assert.That(foodItem.FoodGroups.Contains(activeFoodGroupMock), Is.True);
            Assert.That(foodItem.FoodGroups.Contains(inactiveFoodGroup1Mock), Is.False);
            Assert.That(foodItem.FoodGroups.Contains(inactiveFoodGroup2Mock), Is.False);
        }
예제 #5
0
        public void TestThatParentSetterSetsValueWhichAreNull()
        {
            var foodGroup = new FoodGroup
            {
                Parent = DomainObjectMockBuilder.BuildFoodGroupMock()
            };

            Assert.That(foodGroup, Is.Not.Null);
            Assert.That(foodGroup.Parent, Is.Not.Null);

            foodGroup.Parent = null;
            Assert.That(foodGroup.Parent, Is.Null);
        }
예제 #6
0
        public void TestThatParentSetterSetsValueWhichAreNotNull()
        {
            var foodGroup = new FoodGroup();

            Assert.That(foodGroup, Is.Not.Null);
            Assert.That(foodGroup.Parent, Is.Null);

            var parentFoodGroupMock = DomainObjectMockBuilder.BuildFoodGroupMock();

            foodGroup.Parent = parentFoodGroupMock;
            Assert.That(foodGroup.Parent, Is.Not.Null);
            Assert.That(foodGroup.Parent, Is.EqualTo(parentFoodGroupMock));
        }
예제 #7
0
        public void TestThatIsActiveSetterSetsIsActive(bool testValue)
        {
            var foodItem = new FoodItem(DomainObjectMockBuilder.BuildFoodGroupMock())
            {
                IsActive = !testValue
            };

            Assert.That(foodItem, Is.Not.Null);
            Assert.That(foodItem.IsActive, Is.Not.EqualTo(testValue));

            foodItem.IsActive = testValue;
            Assert.That(foodItem.IsActive, Is.EqualTo(testValue));
        }
예제 #8
0
        public void TestThatForeignKeyAddThrowsArgumentNullExceptionWhenForeignKeyIsNull()
        {
            var foodItem = new FoodItem(DomainObjectMockBuilder.BuildFoodGroupMock());

            Assert.That(foodItem, Is.Not.Null);

            var exception = Assert.Throws <ArgumentNullException>(() => foodItem.ForeignKeyAdd(null));

            Assert.That(exception, Is.Not.Null);
            Assert.That(exception.ParamName, Is.Not.Null);
            Assert.That(exception.ParamName, Is.Not.Empty);
            Assert.That(exception.ParamName, Is.EqualTo("foreignKey"));
            Assert.That(exception.InnerException, Is.Null);
        }
예제 #9
0
        public void TestThatRemoveInactiveFoodGroupsDoesNotCallRemoveInactiveChildrenOnEachInactiveFoodGroup()
        {
            var primaryFoodGroupMock = DomainObjectMockBuilder.BuildFoodGroupMock(isActive: false);

            Assert.That(primaryFoodGroupMock, Is.Not.Null);
            Assert.That(primaryFoodGroupMock.Identifier, Is.Not.Null);
            Assert.That(primaryFoodGroupMock.Identifier.HasValue, Is.True);
            Assert.That(primaryFoodGroupMock.IsActive, Is.False);

            var activeFoodGroupMock = DomainObjectMockBuilder.BuildFoodGroupMock();

            Assert.That(activeFoodGroupMock, Is.Not.Null);
            Assert.That(activeFoodGroupMock.Identifier, Is.Not.Null);
            Assert.That(activeFoodGroupMock.Identifier.HasValue, Is.True);
            Assert.That(activeFoodGroupMock.IsActive, Is.True);

            var inactiveFoodGroup1Mock = DomainObjectMockBuilder.BuildFoodGroupMock(isActive: false);

            Assert.That(inactiveFoodGroup1Mock, Is.Not.Null);
            Assert.That(inactiveFoodGroup1Mock.Identifier, Is.Not.Null);
            Assert.That(inactiveFoodGroup1Mock.Identifier.HasValue, Is.True);
            Assert.That(inactiveFoodGroup1Mock.IsActive, Is.False);

            var inactiveFoodGroup2Mock = DomainObjectMockBuilder.BuildFoodGroupMock(isActive: false);

            Assert.That(inactiveFoodGroup2Mock, Is.Not.Null);
            Assert.That(inactiveFoodGroup2Mock.Identifier, Is.Not.Null);
            Assert.That(inactiveFoodGroup2Mock.Identifier.HasValue, Is.True);
            Assert.That(inactiveFoodGroup2Mock.IsActive, Is.False);

            var foodItem = new FoodItem(primaryFoodGroupMock);

            Assert.That(foodItem, Is.Not.Null);
            Assert.That(foodItem.PrimaryFoodGroup, Is.Not.Null);
            Assert.That(foodItem.PrimaryFoodGroup, Is.EqualTo(primaryFoodGroupMock));

            foodItem.FoodGroupAdd(activeFoodGroupMock);
            foodItem.FoodGroupAdd(inactiveFoodGroup1Mock);
            foodItem.FoodGroupAdd(inactiveFoodGroup2Mock);
            Assert.That(foodItem.FoodGroups, Is.Not.Null);
            Assert.That(foodItem.FoodGroups, Is.Not.Empty);
            Assert.That(foodItem.FoodGroups.Count(), Is.EqualTo(4));

            foodItem.RemoveInactiveFoodGroups();

            inactiveFoodGroup1Mock.AssertWasNotCalled(m => m.RemoveInactiveChildren());
            inactiveFoodGroup2Mock.AssertWasNotCalled(m => m.RemoveInactiveChildren());
        }
예제 #10
0
        public void TestThatPrimaryFoodGroupSetterSetsPrimaryFoodGroup()
        {
            var foodItem = new MyFoodItem();

            Assert.That(foodItem, Is.Not.Null);

            var primaryFoodGroup = DomainObjectMockBuilder.BuildFoodGroupMock();

            Assert.That(primaryFoodGroup, Is.Not.Null);

            foodItem.PrimaryFoodGroup = primaryFoodGroup;
            Assert.That(foodItem.PrimaryFoodGroup, Is.Not.Null);
            Assert.That(foodItem.PrimaryFoodGroup, Is.EqualTo(primaryFoodGroup));

            Assert.That(foodItem.FoodGroups, Is.Not.Null);
            Assert.That(foodItem.FoodGroups, Is.Not.Empty);
            Assert.That(foodItem.FoodGroups.Count(), Is.EqualTo(1));
            Assert.That(foodItem.FoodGroups.Contains(primaryFoodGroup), Is.True);
        }
예제 #11
0
        public void TestThatConstructorInitializeFoodItem()
        {
            var primaryFoodGroup = DomainObjectMockBuilder.BuildFoodGroupMock();

            var foodItem = new FoodItem(primaryFoodGroup);

            Assert.That(foodItem, Is.Not.Null);
            Assert.That(foodItem.Identifier, Is.Null);
            Assert.That(foodItem.Identifier.HasValue, Is.False);
            Assert.That(foodItem.PrimaryFoodGroup, Is.Not.Null);
            Assert.That(foodItem.PrimaryFoodGroup, Is.EqualTo(primaryFoodGroup));
            Assert.That(foodItem.IsActive, Is.False);
            Assert.That(foodItem.FoodGroups, Is.Not.Null);
            Assert.That(foodItem.FoodGroups, Is.Not.Empty);
            Assert.That(foodItem.FoodGroups.Count(), Is.EqualTo(1));
            Assert.That(foodItem.FoodGroups.Contains(primaryFoodGroup), Is.True);
            Assert.That(foodItem.Translation, Is.Null);
            Assert.That(foodItem.Translations, Is.Not.Null);
            Assert.That(foodItem.Translations, Is.Empty);
            Assert.That(foodItem.ForeignKeys, Is.Not.Null);
            Assert.That(foodItem.ForeignKeys, Is.Empty);
        }