public async Task GenerateAsync_GivenDatabaseWithTablesAndViews_GeneratesFilesInExpectedLocations() { using var tempDir = new TemporaryDirectory(); var projectPath = Path.Combine(tempDir.DirectoryPath, TestCsprojFilename); var tablesDir = Path.Combine(tempDir.DirectoryPath, "Tables"); var viewsDir = Path.Combine(tempDir.DirectoryPath, "Views"); var expectedTable1Path = Path.Combine(tablesDir, "Main", "ViewTestTable1.cs"); var expectedView1Path = Path.Combine(viewsDir, "Main", "TestView1.cs"); var expectedView2Path = Path.Combine(viewsDir, "Main", "TestView2.cs"); var mockFs = new MockFileSystem(new Dictionary <string, MockFileData> { [tempDir.DirectoryPath + Path.PathSeparator] = new MockDirectoryData(), [expectedTable1Path] = MockFileData.NullObject, [expectedView1Path] = MockFileData.NullObject, [expectedView2Path] = MockFileData.NullObject }); var nameTranslator = new PascalCaseNameTranslator(); var commentProvider = new EmptyRelationalDatabaseCommentProvider(); var generator = new PocoDataAccessGenerator(mockFs, Database, commentProvider, nameTranslator); await generator.GenerateAsync(projectPath, TestNamespace).ConfigureAwait(false); Assert.Multiple(() => { Assert.That(mockFs.FileExists(projectPath), Is.True); Assert.That(mockFs.Directory.Exists(tablesDir), Is.True); Assert.That(mockFs.Directory.Exists(viewsDir), Is.True); Assert.That(mockFs.FileExists(expectedTable1Path), Is.True); Assert.That(mockFs.FileExists(expectedView1Path), Is.True); Assert.That(mockFs.FileExists(expectedView2Path), Is.True); }); }
public static async Task GetAllTableComments_WhenInvoked_DoesNotEnumerateAnyValues() { var provider = new EmptyRelationalDatabaseCommentProvider(); var hasComments = await provider.GetAllTableComments().AnyAsync().ConfigureAwait(false); Assert.That(hasComments, Is.False); }
public static void Ctor_GivenNullNameTranslator_ThrowsArgumentNullException() { var mockFs = new MockFileSystem(); var database = Mock.Of <IRelationalDatabase>(); var commentProvider = new EmptyRelationalDatabaseCommentProvider(); Assert.That(() => new OrmLiteDataAccessGenerator(mockFs, database, commentProvider, null), Throws.ArgumentNullException); }
public static void Ctor_GivenNullDatabase_ThrowsArgumentNullException() { var mockFs = new MockFileSystem(); var commentProvider = new EmptyRelationalDatabaseCommentProvider(); var nameTranslator = new VerbatimNameTranslator(); Assert.That(() => new PocoDataAccessGenerator(mockFs, null, commentProvider, nameTranslator), Throws.ArgumentNullException); }
public static async Task GetSynonymComments_GivenValidName_ReturnsNone() { var provider = new EmptyRelationalDatabaseCommentProvider(); var comment = provider.GetSynonymComments("test_synonym"); var isNone = await comment.IsNone.ConfigureAwait(false); Assert.That(isNone, Is.True); }
public static void Ctor_GivenNullFileSystem_ThrowsArgumentNullException() { var database = Mock.Of <IRelationalDatabase>(); var commentProvider = new EmptyRelationalDatabaseCommentProvider(); var nameTranslator = new VerbatimNameTranslator(); Assert.That(() => new EFCoreDataAccessGenerator(null, database, commentProvider, nameTranslator), Throws.ArgumentNullException); }
public static void GenerateAsync_GivenNullOrWhiteSpaceProjectPath_ThrowsArgumentNullException(string projectPath) { var mockFs = new MockFileSystem(); var database = Mock.Of <IRelationalDatabase>(); var commentProvider = new EmptyRelationalDatabaseCommentProvider(); var nameTranslator = new VerbatimNameTranslator(); var generator = new OrmLiteDataAccessGenerator(mockFs, database, commentProvider, nameTranslator); Assert.That(() => generator.GenerateAsync(projectPath, "test"), Throws.ArgumentNullException); }
public static void GenerateAsync_GivenProjectPathNotACsproj_ThrowsArgumentException() { var mockFs = new MockFileSystem(); var database = Mock.Of <IRelationalDatabase>(); var commentProvider = new EmptyRelationalDatabaseCommentProvider(); var nameTranslator = new VerbatimNameTranslator(); var generator = new OrmLiteDataAccessGenerator(mockFs, database, commentProvider, nameTranslator); using var tempDir = new TemporaryDirectory(); var projectPath = Path.Combine(tempDir.DirectoryPath, "DataAccessGeneratorTest.vbproj"); Assert.That(() => generator.GenerateAsync(projectPath, "test"), Throws.ArgumentException); }
public static void GenerateAsync_GivenNullOrWhiteSpaceNamespace_ThrowsArgumentNullException(string ns) { var mockFs = new MockFileSystem(); var database = Mock.Of <IRelationalDatabase>(); var commentProvider = new EmptyRelationalDatabaseCommentProvider(); var nameTranslator = new VerbatimNameTranslator(); var generator = new OrmLiteDataAccessGenerator(mockFs, database, commentProvider, nameTranslator); using var tempDir = new TemporaryDirectory(); var projectPath = Path.Combine(tempDir.DirectoryPath, TestCsprojFileName); Assert.That(() => generator.GenerateAsync(projectPath, ns), Throws.ArgumentNullException); }
public async Task Generate_GivenDatabaseWithTablesAndViews_BuildsProjectSuccessfully() { using var tempDir = new TemporaryDirectory(); var projectPath = Path.Combine(tempDir.DirectoryPath, TestCsprojFilename); var fileSystem = new FileSystem(); var commentProvider = new EmptyRelationalDatabaseCommentProvider(); var nameTranslator = new PascalCaseNameTranslator(); var generator = new PocoDataAccessGenerator(fileSystem, Database, commentProvider, nameTranslator); await generator.GenerateAsync(projectPath, TestNamespace).ConfigureAwait(false); var buildsSuccessfully = await ProjectBuildsSuccessfullyAsync(projectPath).ConfigureAwait(false); Assert.That(buildsSuccessfully, Is.True); }
public static void GetSequenceComments_GivenNullName_ThrowsArgumentNullException() { var provider = new EmptyRelationalDatabaseCommentProvider(); Assert.That(() => provider.GetSequenceComments(null), Throws.ArgumentNullException); }