コード例 #1
0
        public void InitializeWithInitializedQuestTreeWithoutChildrenTest()
        {
            //Arrange
            Quest parent = new FakeQuest {
                Children = null
            };

            IQuestTree tree = MockRepository.GenerateStrictMock <IQuestTree>();

            tree.Expect(tr => tr.IsInitialized()).
            Repeat.Once().
            Return(false);
            tree.Expect(tr => tr.Initialize()).
            Repeat.Once();
            tree.Expect(tr => tr.Root).
            Repeat.Once().
            Return(parent);
            tree.Expect(tr => tr.LoadChildren(Arg <Quest> .Is.Equal(parent))).
            Repeat.Once();

            QuestListModelTopChildrenPredicate list = new QuestListModelTopChildrenPredicate(tree, q => q.State == State.Idle || q.State == State.Done);

            //Act
            bool isInitializedBeforeInitialization = list.IsInitialized();

            list.Initialize();
            bool isInitializedAfterInitialization = list.IsInitialized();

            //Assert
            Assert.IsFalse(isInitializedBeforeInitialization);
            Assert.IsTrue(isInitializedAfterInitialization);

            Quest listParent = list.Parent;

            Assert.AreEqual(parent, listParent);
            List <Quest> listChildren = list.Leaves;

            Assert.IsNull(listChildren);

            tree.VerifyAllExpectations();
        }
コード例 #2
0
        public void InitializeWithInitializedQuestTreeTest()
        {
            //Arrange
            List <Quest> children = new List <Quest>()
            {
                new FakeQuest()
                {
                    State = State.Done
                },
                new FakeQuest()
                {
                    State = State.Done
                },
                new FakeQuest()
                {
                    State = State.Failed
                },
                new FakeQuest()
                {
                    State = State.Idle
                }
            };
            Quest parent = new FakeQuest()
            {
                Children = children
            };

            IQuestTree tree = MockRepository.GenerateStrictMock <IQuestTree>();

            tree.Expect(tr => tr.IsInitialized()).
            Repeat.Once().
            Return(true);
            tree.Expect(tr => tr.Initialize()).
            Repeat.Never();
            tree.Expect(tr => tr.Root).
            Repeat.Twice().
            Return(parent);

            QuestListModelTopChildrenPredicate list = new QuestListModelTopChildrenPredicate(tree, q => q.State == State.Idle || q.State == State.Done);

            //Act
            bool isInitializedBeforeInitialization = list.IsInitialized();

            list.Initialize();
            bool isInitializedAfterInitialization = list.IsInitialized();

            //Assert
            Assert.IsFalse(isInitializedBeforeInitialization);
            Assert.IsTrue(isInitializedAfterInitialization);

            Quest listParent = list.Parent;

            Assert.AreEqual(parent, listParent);
            List <Quest> listChildren = list.Leaves;

            Assert.IsNotNull(listChildren);
            Assert.IsNotEmpty(listChildren);
            Assert.AreEqual(3, listChildren.Count);
            Assert.IsTrue(listChildren.All(c => c.State == State.Done || c.State == State.Idle));

            tree.VerifyAllExpectations();
        }