public void Run_WhenCalledWithRealRoots_WaitsAndNoError()
        {
            var jobRoot = RealRootHelper.GetJobRootNotEmpty();

            ReportRoot reportRoot = RealRootHelper.GetReportRootNotEmpty();

            Monitor.Run(jobRoot, reportRoot);
        }
        public async Task <ReportRoot> UpdateReportAsync(ReportRoot report, CancellationToken ct = default)
        {
            var reportRoot = _reportRepository.Update(report);

            await _reportRepository.UnitOfWork.SaveEntitiesAsync(ct);

            return(reportRoot);
        }
Exemple #3
0
        public void CanBeConstructed()
        {
            var sut = new ReportRoot();

            Assert.NotNull(sut);
            Assert.True(sut.DomainEvents.Count == 1);
            Assert.Contains(sut.DomainEvents, i => i is ReportCreatedEvent);
        }
        public void CanBeSerialized()
        {
            //Arrange
            var fakeReport = new ReportRoot();
            var sut        = new UpdateReportCommand(fakeReport);

            //Act
            var json = JsonSerializer.Serialize(sut);

            //Assert
            Assert.False(string.IsNullOrEmpty(json));
        }
        public async Task <ReportRoot> AddReportAsync(IEnumerable <CostItem> costItems, CancellationToken ct = default)
        {
            var reportRoot = new ReportRoot();

            reportRoot.AddCostItem(costItems);

            reportRoot = _reportRepository.Add(reportRoot);

            await _reportRepository.UnitOfWork.SaveEntitiesAsync(ct);

            return(reportRoot);
        }
Exemple #6
0
        public void CanDetectValidConstruction()
        {
            //Arrange
            var sut           = new ReportRoot();
            var validationCtx = new ValidationContext(this);

            //Act
            var validationResults = sut.Validate(validationCtx);

            //Assert
            Assert.True(!validationResults.Any());
            Assert.Contains(sut.DomainEvents, i => i is ReportCreatedEvent);
        }
        public void CanBeConstructed()
        {
            //Arrange
            var fakeReport = new ReportRoot();
            var sut        = new UpdateReportCommand(fakeReport);

            //Act
            var hashCode = sut.GetHashCode();

            //Assert
            Assert.NotNull(sut);
            Assert.Equal(hashCode, sut.GetHashCode());
            Assert.Equal(fakeReport, sut.Report);
        }
        public void AreNotEqual()
        {
            //Arrange
            var reportItem = new ReportRoot();
            var sut        = new ReportCreatedEvent(reportItem);

            //Act
            var anotherEvent = new ReportCreatedEvent(reportItem);

            //Assert
            Assert.True(sut.ReportItem == reportItem);
            Assert.True(anotherEvent.ReportItem == reportItem);
            Assert.False(sut.Equals(anotherEvent));
        }
        public async Task CanHandleCommand()
        {
            //Arrange
            var mockCostService = new Mock <ICostService>();
            var fakeReportItem  = new ReportRoot();

            mockCostService.Setup(m => m.AddReportAsync(It.IsAny <IEnumerable <CostItem> >(), It.IsAny <CancellationToken>()))
            .Returns(Task.FromResult(fakeReportItem));

            var sut = new CreateReportCommandHandler(mockCostService.Object);

            //Act
            var result = await sut.Handle(new CreateReportCommand(new List <CostItem>()));

            //Assert
            Assert.Equal(result, fakeReportItem);

            Mock.VerifyAll();
        }
Exemple #10
0
        public async Task CanDeleteReportItem()
        {
            //Arrange
            var mockUnitOfWork       = new Mock <IUnitOfWork>();
            var mockReportRepository = new Mock <IReportRepository>();
            var fakeReport           = new ReportRoot();

            mockUnitOfWork.Setup(m => m.SaveChangesAsync(It.IsAny <CancellationToken>())).Returns(Task.FromResult(1));
            mockReportRepository.SetupGet(m => m.UnitOfWork).Returns(mockUnitOfWork.Object);
            mockReportRepository.Setup(m => m.GetAsync(It.IsAny <Guid>())).Returns(Task.FromResult(fakeReport));
            mockReportRepository.Setup(m => m.Delete(It.IsAny <ReportRoot>()));

            var sut = new CostService(mockReportRepository.Object);

            //Act
            await sut.DeleteReportAsync(Guid.NewGuid());

            //Assert
            Mock.VerifyAll();
        }
Exemple #11
0
        public async Task CanAddReportItem()
        {
            //Arrange
            var mockUnitOfWork       = new Mock <IUnitOfWork>();
            var mockReportRepository = new Mock <IReportRepository>();
            var fakeReport           = new ReportRoot();

            mockUnitOfWork.Setup(m => m.SaveChangesAsync(It.IsAny <CancellationToken>())).Returns(Task.FromResult(1));
            mockReportRepository.SetupGet(m => m.UnitOfWork).Returns(mockUnitOfWork.Object);
            mockReportRepository.Setup(m => m.Add(It.IsAny <ReportRoot>())).Returns(fakeReport);

            var sut = new CostService(mockReportRepository.Object);

            //Act
            var result = await sut.AddReportAsync(new List <CostItem>());

            //Assert
            Assert.Equal(result, fakeReport);

            Mock.VerifyAll();
        }
        public async Task CanPublishDomainEventsOnSaveEntities()
        {
            //Arrange
            var entityToAdd  = new ReportRoot();
            var mockMediator = new Mock <IMediator>();

            mockMediator.Setup(m => m.Publish(It.IsAny <IDomainEvent>(), It.IsAny <CancellationToken>()));

            var sut = _fixture.GetDbContext(mockMediator.Object);

            //Act
            var attachedEntity = await sut.AddAsync(entityToAdd);

            bool result = await sut.SaveEntitiesAsync(new CancellationToken());

            //Assert
            Assert.NotNull(sut);
            Assert.True(result);
            Assert.True(attachedEntity.Entity.Id != Guid.Empty);

            Mock.VerifyAll();
        }
 public ReportCreatedEvent(ReportRoot reportItem)
 {
     ReportItem = reportItem;
 }