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); }
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)); }
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); }