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

            fixture.Inject(new DateTime(2010, 12, 31));
            var objectMapperMock     = MockRepository.GenerateMock <IObjectMapper>();
            var exceptionBuilderMock = MockRepository.GenerateMock <IExceptionBuilder>();

            var regnskaber = fixture.CreateMany <Regnskab>(3).ToList();
            var adresser   = fixture.CreateMany <Person>(3).ToList();

            adresser.ElementAt(0).TilføjBogføringslinje(new Bogføringslinje(fixture.Create <int>(), fixture.Create <DateTime>(), fixture.Create <string>(), fixture.Create <string>(), fixture.Create <decimal>(), 0M));
            adresser.ElementAt(1).TilføjBogføringslinje(new Bogføringslinje(fixture.Create <int>(), fixture.Create <DateTime>(), fixture.Create <string>(), fixture.Create <string>(), fixture.Create <decimal>(), 0M));
            adresser.ElementAt(2).TilføjBogføringslinje(new Bogføringslinje(fixture.Create <int>(), fixture.Create <DateTime>(), fixture.Create <string>(), fixture.Create <string>(), 0M, fixture.Create <decimal>()));

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

            finansstyringRepositoryMock.Expect(m => m.RegnskabGet(Arg <int> .Is.Equal(regnskaber.ElementAt(1).Nummer), Arg <Func <int, Brevhoved> > .Is.NotNull, Arg <Func <int, AdresseBase> > .Is.NotNull))
            .Return(regnskaber.ElementAt(1))
            .Repeat.Any();

            var adresseRepositoryMock = MockRepository.GenerateMock <IAdresseRepository>();

            adresseRepositoryMock.Expect(m => m.AdresseGetAll())
            .Return(adresser)
            .Repeat.Any();

            var fællesRepositoryMock = MockRepository.GenerateMock <IFællesRepository>();

            fællesRepositoryMock.Expect(m => m.BrevhovedGetAll())
            .Return(fixture.CreateMany <Brevhoved>(3))
            .Repeat.Any();

            var commandHandler = new MyCommandHandler(finansstyringRepositoryMock, adresseRepositoryMock, fællesRepositoryMock, objectMapperMock, exceptionBuilderMock);

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

            var adressekonto = fixture.Create <int>();
            var exception    = Assert.Throws <IntranetRepositoryException>(() => commandHandler.AdressekontoGetByRegnskabAndNummer(regnskaber.ElementAt(1).Nummer, adressekonto));

            Assert.That(exception, Is.Not.Null);
            Assert.That(exception.Message, Is.Not.Null);
            Assert.That(exception.Message, Is.Not.Empty);
            Assert.That(exception.Message, Is.EqualTo(Resource.GetExceptionMessage(ExceptionMessage.CantFindObjectById, typeof(AdresseBase).Name, adressekonto)));
            Assert.That(exception.InnerException, Is.Not.Null);
            Assert.That(exception.InnerException, Is.TypeOf <InvalidOperationException>());
        }
        public void TestAtAdressekontoGetByRegnskabAndNummerHenterAdressekontoFraRegnskab()
        {
            var fixture = new Fixture();

            fixture.Inject(new DateTime(2010, 12, 31));
            var objectMapperMock     = MockRepository.GenerateMock <IObjectMapper>();
            var exceptionBuilderMock = MockRepository.GenerateMock <IExceptionBuilder>();

            var regnskaber = fixture.CreateMany <Regnskab>(3).ToList();
            var adresser   = fixture.CreateMany <Person>(3).ToList();

            adresser.ElementAt(0).TilføjBogføringslinje(new Bogføringslinje(fixture.Create <int>(), fixture.Create <DateTime>(), fixture.Create <string>(), fixture.Create <string>(), fixture.Create <decimal>(), 0M));
            adresser.ElementAt(1).TilføjBogføringslinje(new Bogføringslinje(fixture.Create <int>(), fixture.Create <DateTime>(), fixture.Create <string>(), fixture.Create <string>(), fixture.Create <decimal>(), 0M));
            adresser.ElementAt(2).TilføjBogføringslinje(new Bogføringslinje(fixture.Create <int>(), fixture.Create <DateTime>(), fixture.Create <string>(), fixture.Create <string>(), 0M, fixture.Create <decimal>()));
            var finansstyringRepositoryMock = MockRepository.GenerateMock <IFinansstyringRepository>();

            finansstyringRepositoryMock.Expect(m => m.RegnskabGet(Arg <int> .Is.Equal(regnskaber.ElementAt(1).Nummer), Arg <Func <int, Brevhoved> > .Is.NotNull, Arg <Func <int, AdresseBase> > .Is.NotNull))
            .Return(regnskaber.ElementAt(1))
            .Repeat.Any();

            var adresseRepositoryMock = MockRepository.GenerateMock <IAdresseRepository>();

            adresseRepositoryMock.Expect(m => m.AdresseGetAll())
            .Return(adresser)
            .Repeat.Any();

            var fællesRepositoryMock = MockRepository.GenerateMock <IFællesRepository>();

            fællesRepositoryMock.Expect(m => m.BrevhovedGetAll())
            .Return(fixture.CreateMany <Brevhoved>(3))
            .Repeat.Any();

            var commandHandler = new MyCommandHandler(finansstyringRepositoryMock, adresseRepositoryMock, fællesRepositoryMock, objectMapperMock, exceptionBuilderMock);

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

            var adressekonto = commandHandler.AdressekontoGetByRegnskabAndNummer(regnskaber.ElementAt(1).Nummer, adresser.ElementAt(1).Nummer);

            Assert.That(adressekonto, Is.Not.Null);
            Assert.That(adressekonto.Nummer, Is.EqualTo(adresser.ElementAt(1).Nummer));
            Assert.That(adressekonto.Navn, Is.Not.Null);
            Assert.That(adressekonto.Navn, Is.EqualTo(adresser.ElementAt(1).Navn));
            Assert.That(adressekonto.Bogføringslinjer, Is.Not.Null);
            Assert.That(adressekonto.Bogføringslinjer.Count(), Is.EqualTo(1));
        }