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 GenerateAsync_GivenDatabaseWithTables_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 OrmLiteDataAccessGenerator(fileSystem, Database, commentProvider, nameTranslator); await generator.GenerateAsync(projectPath, TestNamespace).ConfigureAwait(false); var buildsSuccessfully = await ProjectBuildsSuccessfullyAsync(projectPath).ConfigureAwait(false); Assert.That(buildsSuccessfully, Is.True); }
public async Task <int> HandleCommandAsync(IConsole console, FileInfo projectPath, string baseNamespace, string convention, CancellationToken cancellationToken) { var fileSystem = new FileSystem(); var nameTranslator = GetNameTranslator(convention); var connection = GetSchematicConnection(); var database = await connection.Dialect.GetRelationalDatabaseAsync(connection, cancellationToken).ConfigureAwait(false); var commentProvider = await connection.Dialect.GetRelationalDatabaseCommentProviderAsync(connection, cancellationToken).ConfigureAwait(false); var generator = new OrmLiteDataAccessGenerator(fileSystem, database, commentProvider, nameTranslator); await generator.GenerateAsync(projectPath.FullName, baseNamespace, cancellationToken).ConfigureAwait(false); console.Out.Write("Project generated at: " + projectPath.FullName); return(ErrorCode.Success); }