public void TestAtBogførtSidsteÅrSetterRejserPropertyChangedVedOpdateringAfBogførtSidsteÅr(string propertyNameToRaise)
        {
            var fixture = new Fixture();

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

            var budgetkontoModel = new BudgetkontoModel(fixture.Create <int>(), fixture.Create <string>(), fixture.Create <string>(), fixture.Create <int>(), fixture.Create <DateTime>(), Math.Abs(fixture.Create <decimal>()) * -1, Math.Abs(fixture.Create <decimal>()) * -1);

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

            var eventCalled = false;

            budgetkontoModel.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);
            budgetkontoModel.BogførtSidsteÅr = budgetkontoModel.BogførtSidsteÅr;
            Assert.That(eventCalled, Is.False);
            budgetkontoModel.BogførtSidsteÅr = Math.Abs(fixture.Create <decimal>());
            Assert.That(eventCalled, Is.True);
        }
        public void TestAtBogførtSetterOpdatererBogført()
        {
            var fixture = new Fixture();

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

            var budget           = Math.Abs(fixture.Create <decimal>()) * -1;
            var bogført          = (budget / 4) * 2;
            var budgetkontoModel = new BudgetkontoModel(fixture.Create <int>(), fixture.Create <string>(), fixture.Create <string>(), fixture.Create <int>(), fixture.Create <DateTime>(), budget, bogført);

            Assert.That(budgetkontoModel, Is.Not.Null);
            Assert.That(budgetkontoModel.Indtægter, Is.EqualTo(0M));
            Assert.That(budgetkontoModel.Udgifter, Is.EqualTo(Math.Abs(budget)));
            Assert.That(budgetkontoModel.Budget, Is.EqualTo(budget));
            Assert.That(budgetkontoModel.Bogført, Is.EqualTo(bogført));
            Assert.That(budgetkontoModel.Disponibel, Is.EqualTo(Math.Abs(budget) - Math.Abs(bogført)));

            var newValue = (budget / 4) * 3;

            Assert.That(budgetkontoModel.Bogført, Is.Not.EqualTo(newValue));

            budgetkontoModel.Bogført = newValue;
            Assert.That(budgetkontoModel.Indtægter, Is.EqualTo(0));
            Assert.That(budgetkontoModel.Udgifter, Is.EqualTo(Math.Abs(budget)));
            Assert.That(budgetkontoModel.Budget, Is.EqualTo(budget));
            Assert.That(budgetkontoModel.Bogført, Is.EqualTo(newValue));
            Assert.That(budgetkontoModel.Disponibel, Is.EqualTo(Math.Abs(budget) - Math.Abs(newValue)));
        }
        public void TestAtBogførtSidsteÅrSetterOpdatererBogførtSidsteÅr()
        {
            var fixture = new Fixture();

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

            var budgetkontoModel = new BudgetkontoModel(fixture.Create <int>(), fixture.Create <string>(), fixture.Create <string>(), fixture.Create <int>(), fixture.Create <DateTime>(), Math.Abs(fixture.Create <decimal>()) * -1, Math.Abs(fixture.Create <decimal>()) * -1);

            Assert.That(budgetkontoModel, Is.Not.Null);
            Assert.That(budgetkontoModel.BogførtSidsteÅr, Is.EqualTo(0M));

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

            budgetkontoModel.BogførtSidsteÅr = newValue;
            Assert.That(budgetkontoModel.BogførtSidsteÅr, Is.EqualTo(newValue));
        }
        public void TestAtUdgifterSetterKasterArgumentExceptionVedIllegalValues(decimal illegalvalue)
        {
            var fixture = new Fixture();

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

            var budgetkontoModel = new BudgetkontoModel(fixture.Create <int>(), fixture.Create <string>(), fixture.Create <string>(), fixture.Create <int>(), fixture.Create <DateTime>(), Math.Abs(fixture.Create <decimal>()) * -1, Math.Abs(fixture.Create <decimal>()) * -1);

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

            var exception = Assert.Throws <ArgumentException>(() => budgetkontoModel.Udgifter = 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);
        }
        public void TestAtConstructorInitiererBudgetkontoModelMedPositivBudgetOgUdenBogført()
        {
            var fixture = new Fixture();

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

            var regnskabsnummer  = fixture.Create <int>();
            var kontonummer      = fixture.Create <string>();
            var kontonavn        = fixture.Create <string>();
            var kontogruppe      = fixture.Create <int>();
            var statusDato       = fixture.Create <DateTime>();
            var budget           = Math.Abs(fixture.Create <decimal>());
            var budgetkontoModel = new BudgetkontoModel(regnskabsnummer, kontonummer, kontonavn, kontogruppe, statusDato, budget);

            Assert.That(budgetkontoModel, Is.Not.Null);
            Assert.That(budgetkontoModel.Regnskabsnummer, Is.EqualTo(regnskabsnummer));
            Assert.That(budgetkontoModel.Kontonummer, Is.Not.Null);
            Assert.That(budgetkontoModel.Kontonummer, Is.Not.Empty);
            Assert.That(budgetkontoModel.Kontonummer, Is.EqualTo(kontonummer));
            Assert.That(budgetkontoModel.Kontonavn, Is.Not.Null);
            Assert.That(budgetkontoModel.Kontonavn, Is.Not.Empty);
            Assert.That(budgetkontoModel.Kontonavn, Is.EqualTo(kontonavn));
            Assert.That(budgetkontoModel.Beskrivelse, Is.Null);
            Assert.That(budgetkontoModel.Notat, Is.Null);
            Assert.That(budgetkontoModel.Kontogruppe, Is.EqualTo(kontogruppe));
            Assert.That(budgetkontoModel.StatusDato, Is.EqualTo(statusDato));
            Assert.That(budgetkontoModel.Indtægter, Is.EqualTo(budget));
            Assert.That(budgetkontoModel.Udgifter, Is.EqualTo(0M));
            Assert.That(budgetkontoModel.Budget, Is.EqualTo(budget));
            Assert.That(budgetkontoModel.BudgetSidsteMåned, Is.EqualTo(0M));
            Assert.That(budgetkontoModel.BudgetÅrTilDato, Is.EqualTo(0M));
            Assert.That(budgetkontoModel.BudgetSidsteÅr, Is.EqualTo(0M));
            Assert.That(budgetkontoModel.Bogført, Is.EqualTo(0M));
            Assert.That(budgetkontoModel.BogførtSidsteMåned, Is.EqualTo(0M));
            Assert.That(budgetkontoModel.BogførtÅrTilDato, Is.EqualTo(0M));
            Assert.That(budgetkontoModel.BogførtSidsteÅr, Is.EqualTo(0M));
            Assert.That(budgetkontoModel.Disponibel, Is.EqualTo(0M));
        }