public async Task SerializeDeserialize_WhenSynonymRoundTripped_PreservesJsonStructure()
        {
            var synonym  = new DatabaseSynonym("test_synonym_name", "test_target_name");
            var synonyms = new[] { synonym };

            var tables    = Array.Empty <IRelationalDatabaseTable>();
            var views     = Array.Empty <IDatabaseView>();
            var sequences = Array.Empty <IDatabaseSequence>();
            var routines  = Array.Empty <IDatabaseRoutine>();

            var db = new RelationalDatabase(
                new IdentifierDefaults(null, null, "main"),
                new VerbatimIdentifierResolutionStrategy(),
                tables,
                views,
                sequences,
                synonyms,
                routines
                );
            var json = await Serializer.SerializeAsync(db).ConfigureAwait(false);

            var importedDb = await Serializer.DeserializeAsync(json).ConfigureAwait(false);

            var reExportedJson = await Serializer.SerializeAsync(importedDb).ConfigureAwait(false);

            Assert.Multiple(() =>
            {
                Assert.That(reExportedJson, Is.Not.Null);
                Assert.That(reExportedJson, Is.Not.Empty);
                Assert.That(reExportedJson, Is.EqualTo(json));
            });
        }
        public async Task SerializeDeserialize_WhenSynonymRoundTripped_ExportsAndParsesWithoutError()
        {
            var synonym  = new DatabaseSynonym("test_synonym_name", "test_target_name");
            var synonyms = new[] { synonym };

            var tables    = Array.Empty <IRelationalDatabaseTable>();
            var views     = Array.Empty <IDatabaseView>();
            var sequences = Array.Empty <IDatabaseSequence>();
            var routines  = Array.Empty <IDatabaseRoutine>();

            var db = new RelationalDatabase(
                new IdentifierDefaults(null, null, "main"),
                new VerbatimIdentifierResolutionStrategy(),
                tables,
                views,
                sequences,
                synonyms,
                routines
                );

            var json = await Serializer.SerializeAsync(db).ConfigureAwait(false);

            var importedDb = await Serializer.DeserializeAsync(json).ConfigureAwait(false);

            db.Should().BeEquivalentTo(importedDb);
        }
Beispiel #3
0
        public static void Target_PropertyGetGivenNotNullCtorArg_ShouldEqualCtorArg()
        {
            const string synonymName = "synonym_test_synonym_1";
            var          synonym     = new DatabaseSynonym(synonymName, synonymName);

            Assert.That(synonym.Target.LocalName, Is.EqualTo(synonymName));
        }
Beispiel #4
0
        public static void ToString_WhenInvoked_ReturnsExpectedString(string synonymSchema, string synonymLocalName, string targetSchema, string targetLocalName, string expectedOutput)
        {
            var synonymName = Identifier.CreateQualifiedIdentifier(synonymSchema, synonymLocalName);
            var targetName  = Identifier.CreateQualifiedIdentifier(targetSchema, targetLocalName);

            var synonym = new DatabaseSynonym(synonymName, targetName);

            var result = synonym.ToString();

            Assert.That(result, Is.EqualTo(expectedOutput));
        }
        public static async Task AnalyseSynonyms_GivenSynonymWithNameContainingWhitespace_ProducesMessages()
        {
            var rule        = new WhitespaceNameRule(RuleLevel.Error);
            var synonymName = new Identifier("   test   ");

            var synonym  = new DatabaseSynonym(synonymName, "target");
            var synonyms = new[] { synonym };

            var hasMessages = await rule.AnalyseSynonyms(synonyms).AnyAsync().ConfigureAwait(false);

            Assert.That(hasMessages, Is.True);
        }
        public static async Task AnalyseSynonyms_GivenSynonymWithNameContainingReservedKeyword_ProducesMessages()
        {
            var rule        = new ReservedKeywordNameRule(CreateFakeDialect(), RuleLevel.Error);
            var synonymName = new Identifier("SELECT");

            var synonym  = new DatabaseSynonym(synonymName, "target");
            var synonyms = new[] { synonym };

            var hasMessages = await rule.AnalyseSynonyms(synonyms).AnyAsync().ConfigureAwait(false);

            Assert.That(hasMessages, Is.True);
        }