public void TestAtAdressekontoSetterRejserPropertyChangedVedOpdateringAfAdressekonto(string propertyNameToRaise)
        {
            var fixture = new Fixture();

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

            var bogføringslinjeModel = new BogføringslinjeModel(fixture.Create <int>(), fixture.Create <int>(), fixture.Create <DateTime>(), fixture.Create <string>(), fixture.Create <string>(), fixture.Create <decimal>(), fixture.Create <decimal>());

            Assert.That(bogføringslinjeModel, Is.Not.Null);

            var eventCalled = false;

            bogføringslinjeModel.PropertyChanged += (s, e) =>
            {
                Assert.That(s, Is.Not.Null);
                Assert.That(e, Is.Not.Null);
                Assert.That(e.PropertyName, Is.Not.Null);
                Assert.That(e.PropertyName, Is.Not.Empty);
                if (string.Compare(e.PropertyName, propertyNameToRaise, StringComparison.Ordinal) == 0)
                {
                    eventCalled = true;
                }
            };

            Assert.That(eventCalled, Is.False);
            bogføringslinjeModel.Adressekonto = bogføringslinjeModel.Adressekonto;
            Assert.That(eventCalled, Is.False);
            bogføringslinjeModel.Adressekonto = fixture.Create <int>();
            Assert.That(eventCalled, Is.True);
        }
        public void TestAtCreateNewDannerBogføringslinjeModel()
        {
            var fixture = new Fixture();

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

            var regnskabsnummer      = fixture.Create <int>();
            var dato                 = fixture.Create <DateTime>();
            var kontonummer          = fixture.Create <string>();
            var bogføringslinjeModel = BogføringslinjeModel.CreateNew(regnskabsnummer, dato, kontonummer);

            Assert.That(bogføringslinjeModel, Is.Not.Null);
            Assert.That(bogføringslinjeModel.Regnskabsnummer, Is.EqualTo(regnskabsnummer));
            Assert.That(bogføringslinjeModel.Løbenummer, Is.EqualTo(int.MinValue));
            Assert.That(bogføringslinjeModel.Dato, Is.EqualTo(dato));
            Assert.That(bogføringslinjeModel.Bilag, Is.Null);
            Assert.That(bogføringslinjeModel.Kontonummer, Is.Not.Null);
            Assert.That(bogføringslinjeModel.Kontonummer, Is.Not.Empty);
            Assert.That(bogføringslinjeModel.Kontonummer, Is.EqualTo(kontonummer));
            Assert.That(bogføringslinjeModel.Tekst, Is.Not.Null);
            Assert.That(bogføringslinjeModel.Tekst, Is.Empty);
            Assert.That(bogføringslinjeModel.Budgetkontonummer, Is.Null);
            Assert.That(bogføringslinjeModel.Debit, Is.EqualTo(0M));
            Assert.That(bogføringslinjeModel.Kredit, Is.EqualTo(0M));
        }
        public void TestAtCreateNewKasterArgumentNullExceptionVedIllegalKontonummer(string illegalValue)
        {
            var fixture = new Fixture();

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

            var exception = Assert.Throws <ArgumentNullException>(() => BogføringslinjeModel.CreateNew(fixture.Create <int>(), fixture.Create <DateTime>(), illegalValue));

            Assert.That(exception, Is.Not.Null);
            Assert.That(exception.ParamName, Is.Not.Null);
            Assert.That(exception.ParamName, Is.Not.Empty);
            Assert.That(exception.ParamName, Is.EqualTo("kontonummer"));
            Assert.That(exception.InnerException, Is.Null);
        }
        public void TestAtConstructorInitiererBogføringslinjeModel()
        {
            var fixture = new Fixture();

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

            var regnskabsnummer      = fixture.Create <int>();
            var løbenummer           = fixture.Create <int>();
            var dato                 = fixture.Create <DateTime>();
            var bilag                = fixture.Create <string>();
            var kontonummer          = fixture.Create <string>();
            var tekst                = fixture.Create <string>();
            var budgetkontonummer    = fixture.Create <string>();
            var debit                = fixture.Create <decimal>();
            var kredit               = fixture.Create <decimal>();
            var adressekonto         = fixture.Create <int>();
            var nyhedsinformation    = string.Format("{0} {1}\r\n{2} {3}", dato.ToShortDateString(), kontonummer, tekst, (debit - kredit).ToString("C"));
            var bogføringslinjeModel = new BogføringslinjeModel(regnskabsnummer, løbenummer, dato, kontonummer, tekst, debit, kredit)
            {
                Bilag             = bilag,
                Budgetkontonummer = budgetkontonummer,
                Adressekonto      = adressekonto
            };

            Assert.That(bogføringslinjeModel, Is.Not.Null);
            Assert.That(bogføringslinjeModel.Regnskabsnummer, Is.EqualTo(regnskabsnummer));
            Assert.That(bogføringslinjeModel.Løbenummer, Is.EqualTo(løbenummer));
            Assert.That(bogføringslinjeModel.Dato, Is.EqualTo(dato));
            Assert.That(bogføringslinjeModel.Bilag, Is.Not.Null);
            Assert.That(bogføringslinjeModel.Bilag, Is.Not.Empty);
            Assert.That(bogføringslinjeModel.Bilag, Is.EqualTo(bilag));
            Assert.That(bogføringslinjeModel.Kontonummer, Is.Not.Null);
            Assert.That(bogføringslinjeModel.Kontonummer, Is.Not.Empty);
            Assert.That(bogføringslinjeModel.Kontonummer, Is.EqualTo(kontonummer));
            Assert.That(bogføringslinjeModel.Tekst, Is.Not.Null);
            Assert.That(bogføringslinjeModel.Tekst, Is.Not.Empty);
            Assert.That(bogføringslinjeModel.Tekst, Is.EqualTo(tekst));
            Assert.That(bogføringslinjeModel.Budgetkontonummer, Is.Not.Null);
            Assert.That(bogføringslinjeModel.Budgetkontonummer, Is.Not.Empty);
            Assert.That(bogføringslinjeModel.Budgetkontonummer, Is.EqualTo(budgetkontonummer));
            Assert.That(bogføringslinjeModel.Debit, Is.EqualTo(debit));
            Assert.That(bogføringslinjeModel.Kredit, Is.EqualTo(kredit));
            Assert.That(bogføringslinjeModel.Bogført, Is.EqualTo(bogføringslinjeModel.Debit - bogføringslinjeModel.Kredit));
            Assert.That(bogføringslinjeModel.Adressekonto, Is.EqualTo(adressekonto));
            Assert.That(bogføringslinjeModel.Nyhedsaktualitet, Is.EqualTo(Nyhedsaktualitet.Medium));
            Assert.That(bogføringslinjeModel.Nyhedsudgivelsestidspunkt, Is.EqualTo(dato));
            Assert.That(bogføringslinjeModel.Nyhedsinformation, Is.Not.Null);
            Assert.That(bogføringslinjeModel.Nyhedsinformation, Is.Not.Empty);
            Assert.That(bogføringslinjeModel.Nyhedsinformation, Is.EqualTo(nyhedsinformation));
        }
        public void TestAtCreateNewKasterArgumentExceptionVedIllegalDato(string illegalValue)
        {
            var fixture = new Fixture();

            var dato      = Convert.ToDateTime(illegalValue, new CultureInfo("en-US"));
            var exception = Assert.Throws <ArgumentException>(() => BogføringslinjeModel.CreateNew(fixture.Create <int>(), dato, fixture.Create <string>()));

            Assert.That(exception, Is.Not.Null);
            Assert.That(exception.Message, Is.Not.Null);
            Assert.That(exception.Message, Is.Not.Empty);
            Assert.That(exception.Message, Does.StartWith(Resource.GetExceptionMessage(ExceptionMessage.IllegalArgumentValue, "dato", dato)));
            Assert.That(exception.ParamName, Is.Not.Null);
            Assert.That(exception.ParamName, Is.Not.Empty);
            Assert.That(exception.ParamName, Is.EqualTo("dato"));
            Assert.That(exception.InnerException, Is.Null);
        }
        public void TestAtCreateNewKasterArgumentExceptionVedIllegalRegnskabsnummer(int illegalValue)
        {
            var fixture = new Fixture();

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

            var exception = Assert.Throws <ArgumentException>(() => BogføringslinjeModel.CreateNew(illegalValue, fixture.Create <DateTime>(), fixture.Create <string>()));

            Assert.That(exception, Is.Not.Null);
            Assert.That(exception.Message, Is.Not.Null);
            Assert.That(exception.Message, Is.Not.Empty);
            Assert.That(exception.Message, Does.StartWith(Resource.GetExceptionMessage(ExceptionMessage.IllegalArgumentValue, "regnskabsnummer", illegalValue)));
            Assert.That(exception.ParamName, Is.Not.Null);
            Assert.That(exception.ParamName, Is.Not.Empty);
            Assert.That(exception.ParamName, Is.EqualTo("regnskabsnummer"));
            Assert.That(exception.InnerException, Is.Null);
        }
        public void TestAtAdressekontoSetterOpdatererAdressekonto()
        {
            var fixture = new Fixture();

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

            var bogføringslinjeModel = new BogføringslinjeModel(fixture.Create <int>(), fixture.Create <int>(), fixture.Create <DateTime>(), fixture.Create <string>(), fixture.Create <string>(), fixture.Create <decimal>(), fixture.Create <decimal>());

            Assert.That(bogføringslinjeModel, Is.Not.Null);

            var newValue = fixture.Create <int>();

            Assert.That(bogføringslinjeModel.Adressekonto, Is.Not.EqualTo(newValue));

            bogføringslinjeModel.Adressekonto = newValue;
            Assert.That(bogføringslinjeModel.Adressekonto, Is.EqualTo(newValue));
        }
        public void TestAtKreditSetterOpdatererKredit()
        {
            var fixture = new Fixture();

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

            var bogføringslinjeModel = new BogføringslinjeModel(fixture.Create <int>(), fixture.Create <int>(), fixture.Create <DateTime>(), fixture.Create <string>(), fixture.Create <string>(), fixture.Create <decimal>(), fixture.Create <decimal>());

            Assert.That(bogføringslinjeModel, Is.Not.Null);

            var newValue = fixture.Create <decimal>();

            Assert.That(bogføringslinjeModel.Kredit, Is.Not.EqualTo(newValue));

            bogføringslinjeModel.Kredit = newValue;
            Assert.That(bogføringslinjeModel.Kredit, Is.EqualTo(newValue));
            Assert.That(bogføringslinjeModel.Bogført, Is.EqualTo(bogføringslinjeModel.Debit - newValue));
        }
        public void TestAtTekstSetterKasterArgumentExceptionVedIllegalValue(string illegalValue)
        {
            var fixture = new Fixture();

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

            var bogføringslinjeModel = new BogføringslinjeModel(fixture.Create <int>(), fixture.Create <int>(), fixture.Create <DateTime>(), fixture.Create <string>(), fixture.Create <string>(), fixture.Create <decimal>(), fixture.Create <decimal>());

            Assert.That(bogføringslinjeModel, Is.Not.Null);

            var exception = Assert.Throws <ArgumentNullException>(() => bogføringslinjeModel.Tekst = illegalValue);

            Assert.That(exception, Is.Not.Null);
            Assert.That(exception.ParamName, Is.Not.Null);
            Assert.That(exception.ParamName, Is.Not.Empty);
            Assert.That(exception.ParamName, Is.EqualTo("value"));
            Assert.That(exception.InnerException, Is.Null);
        }
        public void TestAtKreditSetterKasterArgumentExceptionVedIllegalValue(decimal illegalValue)
        {
            var fixture = new Fixture();

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

            var bogføringslinjeModel = new BogføringslinjeModel(fixture.Create <int>(), fixture.Create <int>(), fixture.Create <DateTime>(), fixture.Create <string>(), fixture.Create <string>(), fixture.Create <decimal>(), fixture.Create <decimal>());

            Assert.That(bogføringslinjeModel, Is.Not.Null);

            var exception = Assert.Throws <ArgumentException>(() => bogføringslinjeModel.Kredit = illegalValue);

            Assert.That(exception, Is.Not.Null);
            Assert.That(exception.Message, Is.Not.Null);
            Assert.That(exception.Message, Is.Not.Empty);
            Assert.That(exception.Message, Does.StartWith(Resource.GetExceptionMessage(ExceptionMessage.IllegalArgumentValue, "value", illegalValue)));
            Assert.That(exception.ParamName, Is.Not.Null);
            Assert.That(exception.ParamName, Is.Not.Empty);
            Assert.That(exception.ParamName, Is.EqualTo("value"));
            Assert.That(exception.InnerException, Is.Null);
        }