예제 #1
0
        public async Task Given_ExistingPeriodWhichIsLastPeriod_When_EndDateUpdated_Then_ResultIsSuccess()
        {
            // Arrange.
            var period = new Period(
                new DateTime(2020, 1, 1),
                new DateTime(2020, 1, 31));

            AccountingManager testObject = AccountingManagerFactory.Create(out IAccountingDataAccess accountingDataAccess);

            accountingDataAccess
            .GetLastPeriod()
            .Returns(GetResult <Period> .CreateSuccess(period));

            var updateEndDate = new UpdateLastPeriodEndDateDto(period.End.AddDays(1));

            accountingDataAccess
            .UpdateLastPeriodEndDate(updateEndDate.NewEnd)
            .Returns(ActionResult.CreateSuccess());

            // Act.
            ActionResult result = await testObject.UpdateLastPeriodEndDate(updateEndDate);

            // Assert.
            Assert.IsTrue(result.IsSuccess);
        }
예제 #2
0
        public async Task Given_ExistingLastPeriod_When_EndDateUpdatedWithDateBeforeStart_Then_ResultIsFailure()
        {
            // Arrange.
            var lastPeriod = new Period(
                new DateTime(2020, 2, 1),
                new DateTime(2020, 2, 29));

            AccountingManager testObject = AccountingManagerFactory.Create(out IAccountingDataAccess accountingDataAccess);

            accountingDataAccess
            .GetLastPeriod()
            .Returns(GetResult <Period> .CreateSuccess(lastPeriod));

            var updateEndDate = new UpdateLastPeriodEndDateDto(lastPeriod.Start.AddDays(-1));

            accountingDataAccess
            .UpdateLastPeriodEndDate(updateEndDate.NewEnd)
            .Returns(ActionResult.CreateSuccess());

            // Act.
            ActionResult result = await testObject.UpdateLastPeriodEndDate(updateEndDate);

            // Assert.
            Assert.IsFalse(result.IsSuccess);
        }
        private async Task UpdateLastPeriodEndDateAndCloseDialogOnSuccess(DateTime newEnd)
        {
            var dto = new UpdateLastPeriodEndDateDto(newEnd);

            ActionResult result = await _accountingManager.UpdateLastPeriodEndDate(dto);

            if (!result.IsSuccess)
            {
                this.ShowErrorMessage("Failed to update last period's end date.", result.FailureMessage);
                return;
            }

            _synchronizationContext.Post(
                x =>
            {
                DialogResult = DialogResult.OK;
                Close();
            },
                null);
        }