public void TestAtRegnskabGetReturnererNullOgKalderHandleExceptionVedException()
        {
            var fixture = new Fixture();

            fixture.Customize <IRegnskabModel>(e => e.FromFactory(() =>
            {
                var mock = MockRepository.GenerateMock <IRegnskabModel>();
                mock.Expect(m => m.Nummer)
                .Return(fixture.Create <int>())
                .Repeat.Any();
                return(mock);
            }));

            Func <IEnumerable <IRegnskabModel> > regnskabslisteGetter = () =>
            {
                var message = fixture.Create <string>();
                throw new Exception(message);
            };
            var finansstyringRepositoryMock = MockRepository.GenerateMock <IFinansstyringRepository>();

            finansstyringRepositoryMock.Expect(m => m.RegnskabslisteGetAsync())
            .Return(Task.Run(regnskabslisteGetter))
            .Repeat.Any();

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

            var regnskabslisteViewModel = new RegnskabslisteViewModel(finansstyringRepositoryMock, exceptionHandlerViewModelMock);

            Assert.That(regnskabslisteViewModel, Is.Not.Null);
            Assert.That(regnskabslisteViewModel.Regnskaber, Is.Not.Null);
            Assert.That(regnskabslisteViewModel.Regnskaber, Is.Empty);

            var task = regnskabslisteViewModel.RegnskabGetAsync(fixture.Create <int>());

            task.Wait();

            Assert.That(task.Result, Is.Null);

            finansstyringRepositoryMock.AssertWasCalled(m => m.RegnskabslisteGetAsync());
            exceptionHandlerViewModelMock.AssertWasCalled(m => m.HandleException(Arg <IntranetGuiSystemException> .Is.Anything));
        }
        public void TestAtRegnskabGetHenterRegnskabViewModelFraRegnskaber()
        {
            var fixture = new Fixture();

            fixture.Customize <IRegnskabViewModel>(e => e.FromFactory(() =>
            {
                var mock = MockRepository.GenerateMock <IRegnskabViewModel>();
                mock.Expect(m => m.Nummer)
                .Return(fixture.Create <int>())
                .Repeat.Any();
                return(mock);
            }));

            var finansstyringRepositoryMock = MockRepository.GenerateMock <IFinansstyringRepository>();

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

            var regnskabslisteViewModel = new RegnskabslisteViewModel(finansstyringRepositoryMock, exceptionHandlerViewModelMock);

            Assert.That(regnskabslisteViewModel, Is.Not.Null);
            Assert.That(regnskabslisteViewModel.Regnskaber, Is.Not.Null);
            Assert.That(regnskabslisteViewModel.Regnskaber, Is.Empty);

            var regnskabViewModelMock = fixture.Create <IRegnskabViewModel>();

            regnskabslisteViewModel.RegnskabAdd(regnskabViewModelMock);
            Assert.That(regnskabslisteViewModel.Regnskaber, Is.Not.Null);
            Assert.That(regnskabslisteViewModel.Regnskaber, Is.Not.Empty);

            var task = regnskabslisteViewModel.RegnskabGetAsync(regnskabViewModelMock.Nummer);

            task.Wait();

            Assert.That(task.Result, Is.Not.Null);
            Assert.That(task.Result, Is.EqualTo(regnskabViewModelMock));

            finansstyringRepositoryMock.AssertWasNotCalled(m => m.RegnskabslisteGetAsync());
            exceptionHandlerViewModelMock.AssertWasNotCalled(m => m.HandleException(Arg <Exception> .Is.Anything));
        }
        public void TestAtRegnskabGetReturnererNullHvisRegnskabIkkeFindes()
        {
            var fixture = new Fixture();

            fixture.Customize <IRegnskabModel>(e => e.FromFactory(() =>
            {
                var mock = MockRepository.GenerateMock <IRegnskabModel>();
                mock.Expect(m => m.Nummer)
                .Return(fixture.Create <int>())
                .Repeat.Any();
                return(mock);
            }));

            var regnskabModelMockCollection = fixture.CreateMany <IRegnskabModel>(3).ToList();
            Func <IEnumerable <IRegnskabModel> > regnskabslisteGetter = () => regnskabModelMockCollection;
            var finansstyringRepositoryMock = MockRepository.GenerateMock <IFinansstyringRepository>();

            finansstyringRepositoryMock.Expect(m => m.RegnskabslisteGetAsync())
            .Return(Task.Run(regnskabslisteGetter))
            .Repeat.Any();

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

            var regnskabslisteViewModel = new RegnskabslisteViewModel(finansstyringRepositoryMock, exceptionHandlerViewModelMock);

            Assert.That(regnskabslisteViewModel, Is.Not.Null);
            Assert.That(regnskabslisteViewModel.Regnskaber, Is.Not.Null);
            Assert.That(regnskabslisteViewModel.Regnskaber, Is.Empty);

            var task = regnskabslisteViewModel.RegnskabGetAsync(fixture.Create <int>());

            task.Wait();

            Assert.That(task.Result, Is.Null);

            finansstyringRepositoryMock.AssertWasCalled(m => m.RegnskabslisteGetAsync());
            exceptionHandlerViewModelMock.AssertWasNotCalled(m => m.HandleException(Arg <Exception> .Is.Anything));
        }