public async Task GetAllStages_WhenThreeAreAdded_ReturnsThree() { // Arrange var connectionStringBuild = new SqliteConnectionStringBuilder { DataSource = ":memory:" }; var connection = new SqliteConnection(connectionStringBuild.ToString()); var options = new DbContextOptionsBuilder <StageBuilderDbContext>() .UseSqlite(connection) .Options; using (var context = new StageBuilderDbContext(options)) { context.Database.OpenConnection(); context.Database.EnsureCreated(); context.AddRange(new List <StageEntity> { new StageEntity() { UserId = 1, GameId = 1, CreatedDate = DateTime.Now, LastUpdatedDate = DateTime.Now }, new StageEntity() { UserId = 1, GameId = 1, CreatedDate = DateTime.Now, LastUpdatedDate = DateTime.Now }, new StageEntity() { UserId = 1, GameId = 1, Published = true, CreatedDate = DateTime.Now, LastUpdatedDate = DateTime.Now } }.ToArray()); context.SaveChanges(); } using (var context = new StageBuilderDbContext(options)) { var service = new StageService(context); // Act var stages = await service.GetAllPublishedStagesAsync(); // Assertion var expectedCount = 3; var msg = $"There are {expectedCount} {Entities} in the database"; stages.Should().HaveCount(expectedCount, because: msg); } }
public async Task UpdateStage_UpdatesAStageInDB_ReturnsObject() { // Arrange var connectionStringBuild = new SqliteConnectionStringBuilder { DataSource = ":memory:" }; var connection = new SqliteConnection(connectionStringBuild.ToString()); var options = new DbContextOptionsBuilder <StageBuilderDbContext>() .UseSqlite(connection) .Options; var entity = new StageEntity() { UserId = 1, GameId = 1, CreatedDate = DateTime.Now, LastUpdatedDate = DateTime.Now }; using (var context = new StageBuilderDbContext(options)) { context.Database.OpenConnection(); context.Database.EnsureCreated(); context.Stages.Add(entity); context.SaveChanges(); } using (var context = new StageBuilderDbContext(options)) { var updatedStage = new Stage() { UserId = 1, GameId = 1, }; var service = new StageService(context); // Act 1 var updatedEntity = await service.UpdateStageAsync(entity, updatedStage); // Assertion 1 var expectedName = "Updated stage 1"; var msg = $"Stage {updatedEntity.Name} has an updated"; using (new AssertionScope()) { updatedEntity.Name.Should().Be(expectedName, because: msg); } } }
public async Task AddStageAsync_AddsStage_WhenSuccessful() { // Arrange var connectionStringBuild = new SqliteConnectionStringBuilder { DataSource = ":memory:" }; var connection = new SqliteConnection(connectionStringBuild.ToString()); var options = new DbContextOptionsBuilder <StageBuilderDbContext>() .UseSqlite(connection) .Options; using (var context = new StageBuilderDbContext(options)) { await context.Database.OpenConnectionAsync(); await context.Database.EnsureCreatedAsync(); var stage = new StageEntity() { UserId = 1, GameId = 1, CreatedDate = DateTime.Now, LastUpdatedDate = DateTime.Now }; var service = new StageService(context); // Act 1 var entity = await service.AddStageAsync(stage); // Assertion 1 var expected = "Test stage 1"; var msg = $"Stage {entity.Name} was returned from add method"; entity.Name.Should().Be(expected, because: msg); } using (var context = new StageBuilderDbContext(options)) { var stages = context.Stages; // Act 2 - Check if item is is DB var id = 1; var entity = stages.First(p => p.StageId == id); // Assertion 2 var expected = "Test stage 1"; var msg = $"Stage {entity.Name} exists in database"; entity.Name.Should().Be(expected, because: msg); } }
public async Task RemoveStage_RemovesStage_ReturnsObject() { // Arrange var connectionStringBuild = new SqliteConnectionStringBuilder { DataSource = ":memory:" }; var connection = new SqliteConnection(connectionStringBuild.ToString()); var options = new DbContextOptionsBuilder <StageBuilderDbContext>() .UseSqlite(connection) .Options; using (var context = new StageBuilderDbContext(options)) { context.Database.OpenConnection(); context.Database.EnsureCreated(); context.Stages.Add(new StageEntity() { UserId = 1, GameId = 1, CreatedDate = DateTime.Now, LastUpdatedDate = DateTime.Now }); context.SaveChanges(); } using (var context = new StageBuilderDbContext(options)) { var service = new StageService(context); string name = "Test stage 1"; var stage = context.Stages.First(p => p.Name == name); // Act var entity = await service.RemoveStageAsync(stage); // Assertion 1 var expectedName = "Test stage 1"; var msg = $"Stage {entity.Name} was returned from the remove method"; entity.Name.Should().Be(expectedName, because: msg); } using (var context = new StageBuilderDbContext(options)) { // Assertion 2 var expected = 0; var msg = $"There are no entities in the database"; context.Stages.Should().HaveCount(expected, because: msg); } }
public StageService(StageBuilderDbContext context) { _context = context; }
public RegionService(StageBuilderDbContext context, IStageService stageService, IMapper mapper) { _context = context; _stageService = stageService; _mapper = mapper; }