Esempio n. 1
0
        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();
        }
Esempio n. 5
0
        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()
                );
        }