public async void Async_methods_delegate_to_configured_store_creator() { var model = Mock.Of <IModel>(); var cancellationToken = new CancellationTokenSource().Token; var creatorMock = new Mock <RelationalDataStoreCreator>(); creatorMock.Setup(m => m.ExistsAsync(cancellationToken)).Returns(Task.FromResult(true)); creatorMock.Setup(m => m.HasTablesAsync(cancellationToken)).Returns(Task.FromResult(true)); creatorMock.Setup(m => m.EnsureCreatedAsync(model, cancellationToken)).Returns(Task.FromResult(true)); creatorMock.Setup(m => m.EnsureDeletedAsync(model, cancellationToken)).Returns(Task.FromResult(true)); var configurationMock = new Mock <DbContextConfiguration>(); configurationMock.Setup(m => m.DataStoreCreator).Returns(creatorMock.Object); configurationMock.Setup(m => m.Model).Returns(model); var database = new RelationalDatabase(configurationMock.Object); Assert.True(await database.ExistsAsync(cancellationToken)); creatorMock.Verify(m => m.ExistsAsync(cancellationToken), Times.Once); await database.CreateAsync(cancellationToken); creatorMock.Verify(m => m.CreateAsync(cancellationToken), Times.Once); await database.CreateTablesAsync(cancellationToken); creatorMock.Verify(m => m.CreateTablesAsync(model, cancellationToken), Times.Once); Assert.True(await database.HasTablesAsync(cancellationToken)); creatorMock.Verify(m => m.HasTablesAsync(cancellationToken), Times.Once); await database.DeleteAsync(cancellationToken); creatorMock.Verify(m => m.DeleteAsync(cancellationToken), Times.Once); Assert.True(await database.EnsureCreatedAsync(cancellationToken)); creatorMock.Verify(m => m.EnsureCreatedAsync(model, cancellationToken), Times.Once); Assert.True(await database.EnsureDeletedAsync(cancellationToken)); creatorMock.Verify(m => m.EnsureDeletedAsync(model, cancellationToken), Times.Once); }
public async void Async_methods_delegate_to_configured_store_creator() { var model = Mock.Of<IModel>(); var cancellationToken = new CancellationTokenSource().Token; var creatorMock = new Mock<RelationalDataStoreCreator>(); creatorMock.Setup(m => m.ExistsAsync(cancellationToken)).Returns(Task.FromResult(true)); creatorMock.Setup(m => m.HasTablesAsync(cancellationToken)).Returns(Task.FromResult(true)); creatorMock.Setup(m => m.EnsureCreatedAsync(model, cancellationToken)).Returns(Task.FromResult(true)); creatorMock.Setup(m => m.EnsureDeletedAsync(model, cancellationToken)).Returns(Task.FromResult(true)); var configurationMock = new Mock<DbContextConfiguration>(); configurationMock.Setup(m => m.DataStoreCreator).Returns(creatorMock.Object); configurationMock.Setup(m => m.Model).Returns(model); var database = new RelationalDatabase(configurationMock.Object); Assert.True(await database.ExistsAsync(cancellationToken)); creatorMock.Verify(m => m.ExistsAsync(cancellationToken), Times.Once); await database.CreateAsync(cancellationToken); creatorMock.Verify(m => m.CreateAsync(cancellationToken), Times.Once); await database.CreateTablesAsync(cancellationToken); creatorMock.Verify(m => m.CreateTablesAsync(model, cancellationToken), Times.Once); Assert.True(await database.HasTablesAsync(cancellationToken)); creatorMock.Verify(m => m.HasTablesAsync(cancellationToken), Times.Once); await database.DeleteAsync(cancellationToken); creatorMock.Verify(m => m.DeleteAsync(cancellationToken), Times.Once); Assert.True(await database.EnsureCreatedAsync(cancellationToken)); creatorMock.Verify(m => m.EnsureCreatedAsync(model, cancellationToken), Times.Once); Assert.True(await database.EnsureDeletedAsync(cancellationToken)); creatorMock.Verify(m => m.EnsureDeletedAsync(model, cancellationToken), Times.Once); }