Beispiel #1
0
        public void TestAtConstructorInitiererKreditorlisteGetCommand()
        {
            var fixture = new Fixture();

            fixture.Customize <IFinansstyringRepository>(e => e.FromFactory(() => MockRepository.GenerateMock <IFinansstyringRepository>()));
            fixture.Customize <IExceptionHandlerViewModel>(e => e.FromFactory(() => MockRepository.GenerateMock <IExceptionHandlerViewModel>()));

            var command = new KreditorlisteGetCommand(fixture.Create <IFinansstyringRepository>(), fixture.Create <IExceptionHandlerViewModel>());

            Assert.That(command, Is.Not.Null);
            Assert.That(command.ExecuteTask, Is.Null);
        }
Beispiel #2
0
        public void TestAtExecuteKalderExceptionHandlerViewModelMedIntranetGuiRepositoryExceptionVedIntranetGuiRepositoryException()
        {
            var fixture = new Fixture();

            fixture.Customize <DateTime>(e => e.FromFactory(() => DateTime.Now));

            var finansstyringKonfigurationRepositoryMock = MockRepository.GenerateMock <IFinansstyringKonfigurationRepository>();

            Func <IEnumerable <IAdressekontoModel> > getter = () =>
            {
                throw new IntranetGuiRepositoryException(fixture.Create <string>());
            };
            var finansstyringRepositoryMock = MockRepository.GenerateMock <IFinansstyringRepository>();

            finansstyringRepositoryMock.Expect(m => m.Konfiguration)
            .Return(finansstyringKonfigurationRepositoryMock)
            .Repeat.Any();
            finansstyringRepositoryMock.Expect(m => m.KreditorlisteGetAsync(Arg <int> .Is.GreaterThan(0), Arg <DateTime> .Is.GreaterThan(DateTime.MinValue)))
            .Return(Task.Run(getter))
            .Repeat.Any();

            var exceptionHandlerViewModelMock = MockRepository.GenerateMock <IExceptionHandlerViewModel>();

            var regnskabViewModelMock = MockRepository.GenerateMock <IRegnskabViewModel>();

            regnskabViewModelMock.Expect(m => m.Nummer)
            .Return(fixture.Create <int>())
            .Repeat.Any();
            regnskabViewModelMock.Expect(m => m.StatusDato)
            .Return(fixture.Create <DateTime>())
            .Repeat.Any();

            var command = new KreditorlisteGetCommand(finansstyringRepositoryMock, exceptionHandlerViewModelMock);

            Assert.That(command, Is.Not.Null);
            Assert.That(command.ExecuteTask, Is.Null);

            Action action = () =>
            {
                command.Execute(regnskabViewModelMock);
                Assert.That(command.ExecuteTask, Is.Not.Null);
                command.ExecuteTask.Wait();
            };

            Task.Run(action).Wait(3000);

            finansstyringRepositoryMock.AssertWasCalled(m => m.Konfiguration);
            // ReSharper disable ImplicitlyCapturedClosure
            finansstyringRepositoryMock.AssertWasCalled(m => m.KreditorlisteGetAsync(Arg <int> .Is.Equal(regnskabViewModelMock.Nummer), Arg <DateTime> .Is.Equal(regnskabViewModelMock.StatusDato)));
            // ReSharper restore ImplicitlyCapturedClosure
            exceptionHandlerViewModelMock.AssertWasCalled(m => m.HandleException(Arg <IntranetGuiRepositoryException> .Is.TypeOf));
        }
Beispiel #3
0
        public void TestAtCanExecuteReturnererTrue()
        {
            var fixture = new Fixture();

            fixture.Customize <IFinansstyringRepository>(e => e.FromFactory(() => MockRepository.GenerateMock <IFinansstyringRepository>()));
            fixture.Customize <IExceptionHandlerViewModel>(e => e.FromFactory(() => MockRepository.GenerateMock <IExceptionHandlerViewModel>()));
            fixture.Customize <IRegnskabViewModel>(e => e.FromFactory(() => MockRepository.GenerateMock <IRegnskabViewModel>()));

            var command = new KreditorlisteGetCommand(fixture.Create <IFinansstyringRepository>(), fixture.Create <IExceptionHandlerViewModel>());

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

            var result = command.CanExecute(fixture.Create <IRegnskabViewModel>());

            Assert.That(result, Is.True);
        }
Beispiel #4
0
        public void TestAtExecuteExecutesRefreshCommandOnKreditorerSomIkkeErHentet()
        {
            var fixture = new Fixture();

            fixture.Customize <DateTime>(e => e.FromFactory(() => DateTime.Now));
            fixture.Customize <IAdressekontoModel>(e => e.FromFactory(() =>
            {
                var mock = MockRepository.GenerateMock <IAdressekontoModel>();
                mock.Expect(m => m.Nummer)
                .Return(fixture.Create <int>())
                .Repeat.Any();
                mock.Expect(m => m.Navn)
                .Return(fixture.Create <string>())
                .Repeat.Any();
                mock.Expect(m => m.PrimærTelefon)
                .Return(fixture.Create <string>())
                .Repeat.Any();
                mock.Expect(m => m.SekundærTelefon)
                .Return(fixture.Create <string>())
                .Repeat.Any();
                mock.Expect(m => m.StatusDato)
                .Return(fixture.Create <DateTime>())
                .Repeat.Any();
                mock.Expect(m => m.Saldo)
                .Return(fixture.Create <decimal>())
                .Repeat.Any();
                return(mock);
            }));

            var finansstyringKonfigurationRepositoryMock = MockRepository.GenerateMock <IFinansstyringKonfigurationRepository>();

            finansstyringKonfigurationRepositoryMock.Expect(m => m.DageForNyheder)
            .Return(7)
            .Repeat.Any();

            var adressekontoModelCollection = fixture.CreateMany <IAdressekontoModel>(1).ToList();
            Func <IEnumerable <IAdressekontoModel> > getter = () => adressekontoModelCollection;
            var finansstyringRepositoryMock = MockRepository.GenerateMock <IFinansstyringRepository>();

            finansstyringRepositoryMock.Expect(m => m.Konfiguration)
            .Return(finansstyringKonfigurationRepositoryMock)
            .Repeat.Any();
            finansstyringRepositoryMock.Expect(m => m.KreditorlisteGetAsync(Arg <int> .Is.GreaterThan(0), Arg <DateTime> .Is.GreaterThan(DateTime.MinValue)))
            .Return(Task.Run(getter))
            .Repeat.Any();

            var exceptionHandlerViewModelMock = MockRepository.GenerateMock <IExceptionHandlerViewModel>();

            var refreshCommandMock = MockRepository.GenerateMock <ICommand>();

            refreshCommandMock.Expect(m => m.CanExecute(Arg <object> .Is.NotNull))
            .Return(true)
            .Repeat.Any();

            var adressekontoViewModelMock = MockRepository.GenerateMock <IAdressekontoViewModel>();

            adressekontoViewModelMock.Expect(m => m.Nummer)
            .Return(adressekontoModelCollection.ElementAt(0).Nummer)
            .Repeat.Any();

            var unreadedAdressekontoViewModelMock = MockRepository.GenerateMock <IAdressekontoViewModel>();

            unreadedAdressekontoViewModelMock.Expect(m => m.Nummer)
            .Return(fixture.Create <int>())
            .Repeat.Any();
            unreadedAdressekontoViewModelMock.Expect(m => m.RefreshCommand)
            .Return(refreshCommandMock)
            .Repeat.Any();

            var regnskabViewModelMock = MockRepository.GenerateMock <IRegnskabViewModel>();

            regnskabViewModelMock.Expect(m => m.Nummer)
            .Return(fixture.Create <int>())
            .Repeat.Any();
            regnskabViewModelMock.Expect(m => m.StatusDato)
            .Return(fixture.Create <DateTime>())
            .Repeat.Any();
            regnskabViewModelMock.Expect(m => m.Kreditorer)
            .Return(new List <IAdressekontoViewModel> {
                adressekontoViewModelMock, unreadedAdressekontoViewModelMock
            })
            .Repeat.Any();

            var command = new KreditorlisteGetCommand(finansstyringRepositoryMock, exceptionHandlerViewModelMock);

            Assert.That(command, Is.Not.Null);
            Assert.That(command.ExecuteTask, Is.Null);

            Action action = () =>
            {
                command.Execute(regnskabViewModelMock);
                Assert.That(command.ExecuteTask, Is.Not.Null);
                command.ExecuteTask.Wait();
            };

            Task.Run(action).Wait(3000);

            finansstyringRepositoryMock.AssertWasCalled(m => m.Konfiguration);
            // ReSharper disable ImplicitlyCapturedClosure
            finansstyringRepositoryMock.AssertWasCalled(m => m.KreditorlisteGetAsync(Arg <int> .Is.Equal(regnskabViewModelMock.Nummer), Arg <DateTime> .Is.Equal(regnskabViewModelMock.StatusDato)));
            // ReSharper restore ImplicitlyCapturedClosure
            finansstyringKonfigurationRepositoryMock.AssertWasCalled(m => m.DageForNyheder);
            regnskabViewModelMock.AssertWasCalled(m => m.Kreditorer);
            regnskabViewModelMock.AssertWasNotCalled(m => m.KreditorAdd(Arg <IAdressekontoViewModel> .Is.Anything));
            unreadedAdressekontoViewModelMock.AssertWasCalled(m => m.RefreshCommand);
            refreshCommandMock.AssertWasCalled(m => m.CanExecute(Arg <object> .Is.Equal(unreadedAdressekontoViewModelMock)));
            refreshCommandMock.AssertWasCalled(m => m.Execute(Arg <object> .Is.Equal(unreadedAdressekontoViewModelMock)));
            exceptionHandlerViewModelMock.AssertWasNotCalled(m => m.HandleException(Arg <Exception> .Is.Anything));
        }
Beispiel #5
0
        public void TestAtExecuteAddsNyeKreditorerSomNyhederTilRegnskabViewModel()
        {
            var rand    = new Random(DateTime.Now.Millisecond);
            var fixture = new Fixture();

            fixture.Customize <DateTime>(e => e.FromFactory(() => DateTime.Now));
            fixture.Customize <IAdressekontoModel>(e => e.FromFactory(() =>
            {
                var mock = MockRepository.GenerateMock <IAdressekontoModel>();
                mock.Expect(m => m.Nummer)
                .Return(fixture.Create <int>())
                .Repeat.Any();
                mock.Expect(m => m.StatusDato)
                .Return(fixture.Create <DateTime>().AddDays(rand.Next(0, 10) * -1))
                .Repeat.Any();
                return(mock);
            }));

            var finansstyringKonfigurationRepositoryMock = MockRepository.GenerateMock <IFinansstyringKonfigurationRepository>();

            finansstyringKonfigurationRepositoryMock.Expect(m => m.DageForNyheder)
            .Return(7)
            .Repeat.Any();

            var adressekontoModelCollection = fixture.CreateMany <IAdressekontoModel>(250).ToList();
            Func <IEnumerable <IAdressekontoModel> > getter = () => adressekontoModelCollection;
            var finansstyringRepositoryMock = MockRepository.GenerateMock <IFinansstyringRepository>();

            finansstyringRepositoryMock.Expect(m => m.Konfiguration)
            .Return(finansstyringKonfigurationRepositoryMock)
            .Repeat.Any();
            finansstyringRepositoryMock.Expect(m => m.KreditorlisteGetAsync(Arg <int> .Is.GreaterThan(0), Arg <DateTime> .Is.GreaterThan(DateTime.MinValue)))
            .Return(Task.Run(getter))
            .Repeat.Any();

            var exceptionHandlerViewModelMock = MockRepository.GenerateMock <IExceptionHandlerViewModel>();

            var regnskabViewModelMock = MockRepository.GenerateMock <IRegnskabViewModel>();

            regnskabViewModelMock.Expect(m => m.Nummer)
            .Return(fixture.Create <int>())
            .Repeat.Any();
            regnskabViewModelMock.Expect(m => m.StatusDato)
            .Return(fixture.Create <DateTime>())
            .Repeat.Any();
            regnskabViewModelMock.Expect(m => m.Kreditorer)
            .Return(new List <IAdressekontoViewModel>(0))
            .Repeat.Any();

            var command = new KreditorlisteGetCommand(finansstyringRepositoryMock, exceptionHandlerViewModelMock);

            Assert.That(command, Is.Not.Null);
            Assert.That(command.ExecuteTask, Is.Null);

            Action action = () =>
            {
                command.Execute(regnskabViewModelMock);
                Assert.That(command.ExecuteTask, Is.Not.Null);
                command.ExecuteTask.Wait();
            };

            Task.Run(action).Wait(3000);

            finansstyringRepositoryMock.AssertWasCalled(m => m.Konfiguration);
            // ReSharper disable ImplicitlyCapturedClosure
            finansstyringRepositoryMock.AssertWasCalled(m => m.KreditorlisteGetAsync(Arg <int> .Is.Equal(regnskabViewModelMock.Nummer), Arg <DateTime> .Is.Equal(regnskabViewModelMock.StatusDato)));
            // ReSharper restore ImplicitlyCapturedClosure
            finansstyringKonfigurationRepositoryMock.AssertWasCalled(m => m.DageForNyheder);
            regnskabViewModelMock.AssertWasCalled(m => m.Kreditorer);
            regnskabViewModelMock.AssertWasCalled(m => m.KreditorAdd(Arg <IAdressekontoViewModel> .Is.NotNull), opt => opt.Repeat.Times(adressekontoModelCollection.Count));

            var dageForNyheder = finansstyringKonfigurationRepositoryMock.DageForNyheder;
            var adressekontoTilNyhedCollection = adressekontoModelCollection.Where(m => m.StatusDato.Date.CompareTo(regnskabViewModelMock.StatusDato.Date.AddDays(dageForNyheder * -1)) >= 0 && m.StatusDato.Date.CompareTo(regnskabViewModelMock.StatusDato.Date) <= 0).ToList();

            adressekontoTilNyhedCollection.ForEach(m => m.AssertWasCalled(n => n.SetNyhedsaktualitet(Nyhedsaktualitet.High)));
            regnskabViewModelMock.AssertWasCalled(m => m.NyhedAdd(Arg <INyhedViewModel> .Is.NotNull), opt => opt.Repeat.Times(adressekontoTilNyhedCollection.Count));
            exceptionHandlerViewModelMock.AssertWasNotCalled(m => m.HandleException(Arg <Exception> .Is.Anything));
        }