public async Task CreateAuditableEntity_SessionIsNotNull_AuditableInfoShouldBeSet() { // Arrange var auditableEntity = _fixture.Create <FakeAuditableEntity>(); A.CallTo(() => _gspSession.GetUserAccountOrDefault()) .Returns(_accountModel); var currentTime = _fixture.Create <DateTime>(); A.CallTo(() => _dateTimeService.UtcNow) .Returns(currentTime); // Act _context.FakeAuditableEntities.Add(auditableEntity); await _context.SaveChangesAsync(); // Asset A.CallTo(() => _gspSession.GetUserAccountOrDefault()) .MustHaveHappenedOnceExactly(); A.CallTo(() => _dateTimeService.UtcNow) .MustHaveHappenedOnceExactly(); var savedAuditableEntity = await _context.FakeAuditableEntities.FindAsync(auditableEntity.Id); Assert.Equal(savedAuditableEntity.CreatedByAccountId, _accountModel.Id); Assert.Equal(savedAuditableEntity.UpdatedByAccountId, _accountModel.Id); Assert.Equal(savedAuditableEntity.CreatedAt, currentTime); Assert.Equal(savedAuditableEntity.UpdatedAt, currentTime); }
/// <inheritdoc /> public async Task <int?> Handle(FakeCrudAddCommand request, CancellationToken cancellationToken) { if (request == null) { throw new ArgumentNullException(nameof(request)); } using (var dbContext = new FakeDbContext(_fakeDbContextOptions)) { var entity = new FakeAddAuditDbSet { Value = request.RequestDto, Created = DateTimeOffset.UtcNow }; _ = dbContext.FakeAddAudit.Add(entity); var saveResult = await dbContext.SaveChangesAsync(cancellationToken).ConfigureAwait(false); #pragma warning disable CA1848 // Use the LoggerMessage delegates this._logger.LogDebug("DbContext Save Result: {SaveResult}", saveResult); #pragma warning restore CA1848 // Use the LoggerMessage delegates } return(await Task.FromResult(request.RequestDto).ConfigureAwait(false)); }
/// <inheritdoc /> public async Task Process(FakeCrudAddCommand request, CancellationToken cancellationToken) { if (request == null) { throw new ArgumentNullException(nameof(request)); } using (var dbContext = new FakeDbContext(_fakeDbContextOptions)) { var entity = new FakeAddPreProcessAuditDbSet { Value = request.RequestDto, Created = DateTimeOffset.UtcNow }; _ = dbContext.FakeAddPreProcessAudit.Add(entity); var saveResult = await dbContext.SaveChangesAsync(cancellationToken) .ConfigureAwait(false); _saveResultLogMessage( _logger, saveResult, null); } }
public async Task Create_ValidEntity_ShouldCreateBeCreated() { // Arrange string name = _fixture.Create <string>(); string description = _fixture.Create <string>(); FakeEntity entity = new FakeEntity(name, description); IBaseRepository <FakeEntity> repository = new BaseRepository <FakeDbContext, FakeEntity>(_context); // Act repository.Create(entity); await _context.SaveChangesAsync(); // Assert FakeEntity actualResult = await _context.FakeEntities.FindAsync(entity.Id); Assert.NotNull(actualResult); entity .WithDeepEqual(actualResult) .Assert(); }
public async Task Should_DeleteEvent() { var message = _db.EventOutbox.Add(new OutboxEventMessage() { Id = Guid.NewGuid().ToString() }).Entity; await _db.SaveChangesAsync(); var result = await _store.TryDeleteEventAsync(message); result.Should().BeTrue(); var actual = await _db.EventOutbox.ToListAsync(); actual.Should().HaveCount(1); actual.First().IsProcessed.Should().BeTrue(); }
public async Task ApplyDataAsync_Success( bool enableIdentityInsert, Collection <FakeEntity> existingEntities, Collection <FakeEntity> entities, Collection <FakeEntity> expectedEntities) { // Arrange _dbContext .FakeEntities .AddRange(existingEntities); await _dbContext.SaveChangesAsync(); _dbContext.ChangeTracker.Clear(); var service = new FakeDataService( _configurationBuilder, _hostingEnvironment, "Test FolderPath", _dbContext, enableIdentityInsert, x => x.Id, _logger ); service.SetData(entities); // Act await service.ApplyDataAsync(); // Assert Assert.Equal( expectedEntities, _dbContext.FakeEntities.ToList(), new FakeEntityEqualityComparer() ); }