예제 #1
0
        public void InitializeNoSavedRootTest()
        {
            //Arrange
            Quest createdRoot = new FakeQuest();

            IQuestFactory factory = MockRepository.GenerateStrictMock <IQuestFactory>();

            factory.Expect(cr => cr.CreateQuest()).
            Repeat.Once().
            Return(createdRoot);

            IQuestDataLayer dataLayer = MockRepository.GenerateStrictMock <IQuestDataLayer>();

            dataLayer.Expect(dl => dl.Get(Arg <int> .Is.Equal(TopRootId))).
            Repeat.Once().
            Return(null);
            dataLayer.Expect(dl => dl.Open()).
            Repeat.Once();
            dataLayer.Expect(dl => dl.Dispose()).
            Repeat.Once();
            dataLayer.Expect(dl => dl.Insert(Arg <Quest> .Is.Anything)).
            Repeat.Once();

            QuestTreeInMemory tree = new QuestTreeInMemory(dataLayer, factory);

            //Act
            tree.Initialize();
            bool  isInitialized = tree.IsInitialized();
            Quest root          = tree.Root;

            //Assert
            Assert.IsTrue(isInitialized);
            Assert.IsNotNull(root);

            Assert.AreEqual(createdRoot, root);
            Assert.AreEqual(null, root.ParentId);

            Quest savedRoot =
                dataLayer.GetArgumentsForCallsMadeOn(dl => dl.Insert(Arg <Quest> .Is.Anything))[0][0] as Quest;

            Assert.IsNotNull(savedRoot);

            Assert.AreEqual(root, savedRoot);
            Assert.AreEqual(TopRootId, savedRoot.Id);

            dataLayer.VerifyAllExpectations();
            factory.VerifyAllExpectations();
        }
예제 #2
0
        public void CreateQuestViewModelTest()
        {
            //Arrange
            Quest model = new FakeQuest();

            IQuestFactory questFactory = MockRepository.GenerateStrictMock <IQuestFactory>();

            questFactory.Expect(qf => qf.CreateQuest()).
            Repeat.Once().
            Return(model);

            QuestViewModelFactory questVmFactory = new QuestViewModelFactory(questFactory);

            //Act
            IQuestViewModel vm = questVmFactory.CreateQuestViewModel();

            //Assert
            Assert.IsNotNull(vm);
            Assert.AreEqual(model, vm.Model);
            Assert.IsInstanceOf <QuestViewModel>(vm);
        }
예제 #3
0
        public void SaveWithoutAnyChangesTest()
        {
            //Arrange
            Quest createdRoot = new FakeQuest();

            IQuestFactory factory = MockRepository.GenerateStrictMock <IQuestFactory>();

            factory.Expect(cr => cr.CreateQuest()).
            Repeat.Once().
            Return(createdRoot);

            IQuestDataLayer dataLayer = MockRepository.GenerateStrictMock <IQuestDataLayer>();

            dataLayer.Expect(dl => dl.Open()).
            Repeat.Once();
            dataLayer.Expect(dl => dl.Get(Arg <int> .Is.Equal(TopRootId))).
            Repeat.Once().
            Return(null);
            dataLayer.Expect(dl => dl.Insert(Arg <Quest> .Is.Anything)).
            Repeat.Once();
            dataLayer.Expect(dl => dl.Dispose()).
            Repeat.Once();

            dataLayer.Expect(dl => dl.InsertAll(Arg <IEnumerable <Quest> > .Is.Anything)).
            Repeat.Never();
            dataLayer.Expect(dl => dl.UpdateAll(Arg <IEnumerable <Quest> > .Is.Anything)).
            Repeat.Never();
            dataLayer.Expect(dl => dl.Delete(Arg <int> .Is.Anything)).
            Repeat.Never();

            QuestTreeInMemory tree = new QuestTreeInMemory(dataLayer, factory);

            //Act
            tree.Initialize();
            tree.Save();

            //Assert
            dataLayer.VerifyAllExpectations();
            factory.VerifyAllExpectations();
        }