예제 #1
0
        public void Ctor_CorrectDefaultState()
        {
            MainViewModel vm = new MainViewModelBuilder()
                               .WithPersistence(new InMemoryPersistence())
                               .Build();

            Assert.IsNotNull(vm.CurrentStatement);
            Assert.AreEqual(1, vm.CurrentNumber);
            Assert.IsTrue(vm.IsStatementEmpty);
        }
예제 #2
0
        public void CanSaveStatement_ChangeCurrentStatement_ReturnsExpectedResult(string statement, bool expectedResult)
        {
            MainViewModel vm = new MainViewModelBuilder()
                               .WithPersistence(FilledPersistence())
                               .Build();

            vm.CurrentNumber         = 1;
            vm.CurrentStatement.Text = statement;

            Assert.AreEqual(expectedResult, vm.CanSaveStatement);
        }
예제 #3
0
        public void CanSaveAndRemoveStatement_ReturnsExpectedResult(int statementNumber, bool expectedResult)
        {
            MainViewModel vm = new MainViewModelBuilder()
                               .WithPersistence(FilledPersistence())
                               .Build();

            vm.CurrentNumber = statementNumber;

            Assert.AreEqual(expectedResult, vm.CanSaveStatement);
            Assert.AreEqual(expectedResult, vm.CanRemoveStatement);
        }
예제 #4
0
        public void Save_SaveOnPersistenceWasCalled()
        {
            var           persist = new InMemoryPersistence();
            MainViewModel vm      = new MainViewModelBuilder()
                                    .WithPersistence(persist)
                                    .Build();

            vm.SaveDb();

            Assert.IsTrue(persist.SaveWasCalled);
        }
예제 #5
0
        public void CanAddStatement_ReturnsExpectedResult(int statementNumber, string text, bool expectedResult)
        {
            MainViewModel vm = new MainViewModelBuilder()
                               .WithPersistence(FilledPersistence())
                               .Build();

            vm.CurrentNumber         = statementNumber;
            vm.CurrentStatement.Text = text;

            Assert.AreEqual(expectedResult, vm.CanAddStatement);
        }
예제 #6
0
        public void CopyShouldCopyCurrentStatementToClipboard(string text)
        {
            var vm = new MainViewModelBuilder()
                     .DependenciesNoMatter()
                     .Build();

            vm.CurrentStatement.Text = text;

            vm.Copy();

            Assert.AreEqual(text, Clipboard.GetText());
        }
예제 #7
0
        public void PasteShouldPasteSomeInputTextToCurrentStatement(string text)
        {
            var vm = new MainViewModelBuilder()
                     .DependenciesNoMatter()
                     .Build();

            Clipboard.SetText(text);

            vm.Paste();

            Assert.AreEqual(text, vm.CurrentStatement.Text);
        }
예제 #8
0
        public void StartGame_OpensUpGameViewModel()
        {
            var winMock = new WindowManagerMock();

            var vm = new MainViewModelBuilder()
                     .WithPersistence(FilledPersistence())
                     .WithWindowManager(winMock)
                     .Build();

            vm.StartGame();

            Assert.IsInstanceOf <GameViewModel>(winMock.PassedRootModel);
        }
예제 #9
0
        public void CutShouldCopyToClipboardAndCutSomeInputText(string text)
        {
            var vm = new MainViewModelBuilder()
                     .DependenciesNoMatter()
                     .Build();

            vm.CurrentStatement.Text = text;

            vm.Cut();

            Assert.AreEqual(text, Clipboard.GetText());
            Assert.IsEmpty(vm.CurrentStatement.Text);
        }
예제 #10
0
        public void OpenDb_DialogReturnsTrue_SaveCalledOnPersistence()
        {
            var dialogMock = new DialogServiceMock();
            var persist    = new InMemoryPersistence();

            var vm = new MainViewModelBuilder()
                     .WithPersistence(persist)
                     .WithDialogService(dialogMock)
                     .Build();

            vm.OpenDb();

            Assert.IsTrue(persist.LoadWasCalled);
            Assert.AreEqual(1, vm.CurrentNumber);
        }
예제 #11
0
        public void SaveDbAs_DialogReturnsTrue_SaveCalledOnPersistence()
        {
            var dialogMock = new DialogServiceMock();
            var persist    = new InMemoryPersistence();

            var vm = new MainViewModelBuilder()
                     .WithPersistence(persist)
                     .WithDialogService(dialogMock)
                     .Build();

            vm.SaveDbAs();

            Assert.IsTrue(persist.SaveWasCalled);
            Assert.IsTrue(dialogMock.SaveFileDialogWasCalled);
        }
예제 #12
0
        public void SaveStatement_UpdatesPersistenceAndIncrementsCurrentNumber()
        {
            var persist = FilledPersistence();
            var vm      = new MainViewModelBuilder()
                          .WithPersistence(persist)
                          .Build();

            const string newText = "NextText";

            vm.CurrentStatement.Text = newText;

            vm.SaveStatement();

            Assert.AreEqual(newText, persist[0].Text);
            Assert.AreEqual(2, vm.CurrentNumber);
        }
예제 #13
0
        public void AddStatement_SomeStatement_AddsToPersistence()
        {
            var persist = new InMemoryPersistence();

            var vm = new MainViewModelBuilder()
                     .WithPersistence(persist)
                     .Build();

            vm.CurrentStatement.Text = "Text";

            vm.AddStatement();

            Assert.AreEqual(2, vm.CurrentNumber);
            Assert.AreEqual(1, persist.Count);

            Assert.IsEmpty(vm.CurrentStatement.Text);
            Assert.IsFalse(vm.CurrentStatement.IsTrue);
        }
예제 #14
0
        public void NewDb_DialogReturnsTrue_SaveCalledOnPersistenceAndVmIsInCorrectState()
        {
            var dialog  = new DialogServiceMock();
            var persist = new InMemoryPersistence();

            var vm = new MainViewModelBuilder()
                     .WithPersistence(persist)
                     .WithDialogService(dialog)
                     .Build();

            vm.NewDb();

            Assert.IsTrue(persist.SaveWasCalled);
            Assert.IsTrue(dialog.SaveFileDialogWasCalled);

            Assert.AreEqual(1, vm.CurrentNumber);
            Assert.IsTrue(vm.IsStatementEmpty);
            Assert.IsFalse(vm.CurrentStatement.IsTrue);
        }
예제 #15
0
        public void RemoveStatement_RemovesFromPersistenceAndDecrementsCurrentNumber()
        {
            var persist = FilledPersistence();
            var vm      = new MainViewModelBuilder()
                          .WithPersistence(persist)
                          .Build();

            vm.CurrentNumber = 5;

            vm.RemoveStatement();

            Assert.AreEqual(4, persist.Count);
            Assert.AreEqual(4, vm.CurrentNumber);

            vm.RemoveStatement();
            vm.RemoveStatement();
            vm.RemoveStatement();
            vm.RemoveStatement();

            Assert.AreEqual(0, persist.Count);
            Assert.AreEqual(1, vm.CurrentNumber);
        }