diff --git a/test/StrangerData.UnitTests/Generator/TableGeneratorTests.cs b/test/StrangerData.UnitTests/Generator/TableGeneratorTests.cs index 96d259e..60fd31d 100644 --- a/test/StrangerData.UnitTests/Generator/TableGeneratorTests.cs +++ b/test/StrangerData.UnitTests/Generator/TableGeneratorTests.cs @@ -7,7 +7,7 @@ namespace StrangerData.UnitTests.Generator public class TableGeneratorTests { [Fact] - public void Constructor_TablesFromDifferentDatabasesWithSameName_GetTableSchemaInfoFromBothDatabases() + public void Constructor_TablesFromDatabasesWithDifferentConnectionString_GetTableSchemaInfoFromBothDatabases() { // Arrange Mock databaseOneDialectMock = new Mock(); @@ -29,5 +29,30 @@ public void Constructor_TablesFromDifferentDatabasesWithSameName_GetTableSchemaI databaseOneDialectMock.Verify(d => d.GetTableSchemaInfo(tableName), Times.Once); databaseTwoDialectMock.Verify(d => d.GetTableSchemaInfo(tableName), Times.Once); } + + [Fact] + public void Constructor_TablesFromDifferentDialectsWithSameConnectionString_GetTableSchemaInfoFromCache() + { + // Arrange + string connectionString = Any.String(); + string tableName = Any.String(); + + Mock databaseOneDialectMock = new Mock(); + databaseOneDialectMock.Setup(d => d.ConnectionString) + .Returns(connectionString); + + Mock databaseTwoDialectMock = new Mock(); + databaseTwoDialectMock.Setup(d => d.ConnectionString) + .Returns(connectionString); + + TableGenerator databaseOneTableGenerator = new TableGenerator(databaseOneDialectMock.Object, tableName); + + // Act + TableGenerator databaseTwoTableGenerator = new TableGenerator(databaseTwoDialectMock.Object, tableName); + + // Assert + databaseOneDialectMock.Verify(d => d.GetTableSchemaInfo(tableName), Times.Once); + databaseTwoDialectMock.Verify(d => d.GetTableSchemaInfo(tableName), Times.Never); + } } }