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);
            });
        }
Beispiel #2
0
        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);
        }
Beispiel #5
0
        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);
        }
Beispiel #6
0
        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);
        }
Beispiel #11
0
        public static void GetSequenceComments_GivenNullName_ThrowsArgumentNullException()
        {
            var provider = new EmptyRelationalDatabaseCommentProvider();

            Assert.That(() => provider.GetSequenceComments(null), Throws.ArgumentNullException);
        }