public void Translate_to_DT_throws_TableTranslatorException_when_nested_generic_type_does_not_match() { Translator.AddProfile <GenericsProfile>(); Translator.ApplyUpdates(); Assert.Throws <TableTranslatorException>(() => Translator.Translate <GenericsProfile, Generics.OneGeneric <Generics.OneGeneric <DateTime> > >(new List <Generics.OneGeneric <Generics.OneGeneric <DateTime> > >(), "NestedGeneric")); }
public void Remove_profile_removes_the_correct_profile() { var basicProfile = new BasicProfile(); var basicProfile2 = new BasicProfile2(); var spyProfile = new SpyProfile(); var defaultNameProfile = new DefaultNameProfile(); Translator.AddProfile(basicProfile); Translator.AddProfile(basicProfile2); Translator.AddProfile(spyProfile); Translator.AddProfile(defaultNameProfile); // by generic Translator.RemoveProfile <BasicProfile>(); Translator.ApplyUpdates(); var profiles = Translator.GetAllProfiles().ToList(); CollectionAssert.DoesNotContain(profiles, basicProfile); Assert.AreEqual(3, profiles.Count()); // by instance Translator.RemoveProfile(basicProfile2); Translator.ApplyUpdates(); profiles = Translator.GetAllProfiles().ToList(); CollectionAssert.DoesNotContain(profiles, basicProfile2); Assert.AreEqual(2, profiles.Count()); // by profile name Translator.RemoveProfile(spyProfile.ProfileName); Translator.ApplyUpdates(); profiles = Translator.GetAllProfiles().ToList(); CollectionAssert.DoesNotContain(profiles, spyProfile); Assert.AreEqual(1, profiles.Count()); }
public void Add_profile_with_instance() { Translator.AddProfile(new BasicProfile()); Translator.ApplyUpdates(); Assert.AreEqual(1, Translator.GetProfiles(x => x.ProfileName == new BasicProfile().ProfileName).Count()); }
public void Translation_for_model_with_nested_generics() { var nestedGenerics = new List <Generics.OneGeneric <Generics.OneGeneric <bool> > > { new Generics.OneGeneric <Generics.OneGeneric <bool> > { TData = new Generics.OneGeneric <bool> { TData = true } }, new Generics.OneGeneric <Generics.OneGeneric <bool> > { TData = new Generics.OneGeneric <bool> { TData = false } }, new Generics.OneGeneric <Generics.OneGeneric <bool> > { TData = new Generics.OneGeneric <bool> { TData = true } } }; Translator.AddProfile <GenericsProfile>(); Translator.ApplyUpdates(); var dt = new DataTable(); Assert.DoesNotThrow(() => dt = Translator.Translate <GenericsProfile, Generics.OneGeneric <Generics.OneGeneric <bool> > >(nestedGenerics, "NestedGeneric")); Assert.AreEqual(3, dt.Rows.Count); }
public void Get_specific_profile_translations_returns_null_if_profile_does_not_have_translation_for_the_type_and_name() { Translator.AddProfile <BasicProfile>(); Translator.ApplyUpdates(); var translation = Translator.GetProfileTranslation <BasicProfile, TestParent>("WrongName"); Assert.IsNull(translation); }
public void Get_profile_translations_for_type_returns_empty_collection_if_profile_does_not_have_translation_for_the_type() { Translator.AddProfile <BasicProfile2>(); Translator.ApplyUpdates(); var translations = Translator.GetProfileTranslationsForType <BasicProfile, TestParent>(); CollectionAssert.IsEmpty(translations); }
public void Translate_to_DT_table_name_is_name_of_type_with_generic_formatting_when_no_explicit_translation_name_given() { Translator.AddProfile <GenericsProfile>(); Translator.ApplyUpdates(); var dt = Translator.Translate <GenericsProfile, List <bool> >(new List <List <bool> >()); Assert.AreEqual("List<Boolean>", dt.TableName); }
public void Translate_to_DT_number_of_rows() { Translator.AddProfile <BasicProfile>(); Translator.ApplyUpdates(); var dt = Translator.Translate <BasicProfile, TestPerson>(people, "Translation1"); Assert.AreEqual(3, dt.Rows.Count); }
public void Get_translations_using_predicate_with_no_matches_returns_empty_collection() { Translator.AddProfile(new BasicProfile()); Translator.ApplyUpdates(); Func <Translation, bool> pred = t => t.TranslationSettings.TranslationName == "XYZ"; Assert.AreEqual(0, Translator.GetTranslations(pred).Count()); }
public void Get_translations_using_predicate() { Translator.AddProfile(new BasicProfile()); Translator.ApplyUpdates(); Func <Translation, bool> pred = t => t.TranslationSettings.TranslationName.IndexOf("2", StringComparison.Ordinal) < 0; Assert.AreEqual(3, Translator.GetTranslations(pred).Count()); }
public void Translate_to_DT_table_name_is_name_of_translation_when_explicit() { Translator.AddProfile <BasicProfile>(); Translator.ApplyUpdates(); var dt = Translator.Translate <BasicProfile, TestPerson>(people, "Translation1"); Assert.AreEqual("Translation1", dt.TableName); }
public void Configure_is_called_during_initialization() { var spyProfile = new SpyProfile(); Translator.AddProfile(spyProfile); Translator.ApplyUpdates(); Assert.IsTrue(spyProfile.ConfigureWasCalled); }
public void Translate_to_DbParameters_parameter_name_is_assigned() { Translator.AddProfile <BasicProfile>(); Translator.ApplyUpdates(); var dbParam = Translator.TranslateToDbParameter <BasicProfile, TestPerson>(people, new DbParameterSettings("myParam", "myDbObjectName"), "Translation1"); Assert.AreEqual("myParam", dbParam.ParameterName); }
public void Translate_to_DbParameters_table_name_is_name_of_database_object() { Translator.AddProfile <BasicProfile>(); Translator.ApplyUpdates(); var dbParam = Translator.TranslateToDbParameter <BasicProfile, TestPerson>(people, new DbParameterSettings("myParam", "myDbObjectName"), "Translation1"); Assert.AreEqual("myDbObjectName", ((DataTable)dbParam.Value).TableName); }
public void Get_all_translations_returns_correct_count() { Translator.AddProfile <BasicProfile>(); Translator.AddProfile <BasicProfile2>(); Translator.ApplyUpdates(); var collections = Translator.GetAllTranslations(); Assert.AreEqual(6, collections.Count()); }
public void Translation_level_null_column_prefix_and_suffix_does_not_change_column_name() { Translator.AddProfile <NullPrefixSuffixProfile>(); Translator.ApplyUpdates(); var table = Translator.Translate <NullPrefixSuffixProfile, TestPerson>(new List <TestPerson>(), "TranslationLevelNullPrefixSuffix").GetColumnNames(); Assert.IsTrue(!table.Any(x => x.StartsWith("TRANPRE_") && x.EndsWith("_TRANSUF"))); }
public void Translation_level_column_prefix_and_suffix_applied_to_all_columns_and_tranlations_specific_overrides_profile_level() { Translator.AddProfile <PrefixSuffixProfile>(); Translator.ApplyUpdates(); var table3 = Translator.Translate <PrefixSuffixProfile, TestPerson>(new List <TestPerson>(), "TranslationSpecific").GetColumnNames(); Assert.IsTrue(table3.All(x => x.StartsWith("TRANPRE_") && x.EndsWith("_TRANSUF"))); }
public void Translation_level_null_column_prefix_and_suffix_uses_non_null_profile_level_prefix_and_suffix() { Translator.AddProfile <PrefixSuffixProfile>(); Translator.ApplyUpdates(); var columnNames = Translator.Translate <PrefixSuffixProfile, TestPerson>(new List <TestPerson>(), "NullTranslationSpecific").GetColumnNames(); Assert.IsTrue(columnNames.All(x => x.StartsWith("PROFPRE_") && x.EndsWith("_PROFSUF"))); }
public void Translate_to_DT_allow_DbNull_only_for_nullable_types() { Translator.AddProfile <BasicProfile>(); Translator.ApplyUpdates(); var cols = Translator.Translate <BasicProfile, TestPerson>(people, "Translation1").Columns; Assert.AreEqual(true, cols[0].AllowDBNull); Assert.AreEqual(false, cols[1].AllowDBNull); }
public void Translate_to_DT_returns_empty_table_structure_when_source_is_null() { Translator.AddProfile <BasicProfile>(); Translator.ApplyUpdates(); var dt = Translator.Translate <BasicProfile, TestPerson>(null, "Translation1"); Assert.AreEqual(0, dt.Rows.Count); Assert.AreEqual(4, dt.Columns.Count); }
public static void ResetTranslator() { if (!Translator.IsInitialized) { Translator.Initialize(); } Translator.RemoveAllProfiles(); Translator.ApplyUpdates(); }
public void Get_profile_translations_returns_translations_only_for_that_profile() { Translator.AddProfile <BasicProfile>(); Translator.AddProfile <BasicProfile2>(); Translator.ApplyUpdates(); var collections = Translator.GetProfileTranslations <BasicProfile2>(); Assert.AreEqual(2, collections.Count()); }
public void Identity_column_set_to_correct_name_when_not_provided() { Translator.AddProfile <IdentityProfile>(); Translator.ApplyUpdates(); var columnNames = Translator.Translate <IdentityProfile, int>(new List <int> { 1, 2, 3 }, "GuidNoColumnNameProvided").GetColumnNames(); Assert.AreEqual("Column0", columnNames[0]); }
public void Translate_to_DT_table_name_is_name_of_type_when_no_explicit_translation_name_given() { Translator.AddProfile <BasicProfile>(); Translator.ApplyUpdates(); var dt = Translator.Translate <BasicProfile, bool>(new List <bool> { true, false, true, false }); Assert.AreEqual("Boolean", dt.TableName); }
public void Get_specific_profile_translation_returns_the_correct_translation_from_the_profile() { Translator.AddProfile <BasicProfile>(); Translator.AddProfile <BasicProfile2>(); Translator.ApplyUpdates(); var translation = Translator.GetProfileTranslation <BasicProfile, TestPerson>("Translation2"); Assert.AreEqual("Translation2", translation.TranslationSettings.TranslationName); }
public void All_Members_With_Predicate() { Translator.AddProfile <AllMembersProfile>(); Translator.ApplyUpdates(); var colName = Translator.Translate <AllMembersProfile, AllMembersModel>(new List <AllMembersModel>(), "AllWithMPredicate").GetColumnNames(); CollectionAssert.Contains(colName, "Name"); CollectionAssert.Contains(colName, "IsMale"); CollectionAssert.DoesNotContain(colName, "Age"); }
public void All_Members_With_Orderer() { Translator.AddProfile <AllMembersProfile>(); Translator.ApplyUpdates(); var colNames = Translator.Translate <AllMembersProfile, AllMembersModel>(new List <AllMembersModel>(), "AllByNameDesc").GetColumnNames(); Assert.AreEqual("Name", colNames[0]); Assert.AreEqual("IsMale", colNames[1]); Assert.AreEqual("Age", colNames[2]); }
public void All_Members_With_Binding_Flags() { Translator.AddProfile <AllMembersProfile>(); Translator.ApplyUpdates(); var colNames = Translator.Translate <AllMembersProfile, AllMembersModel>(new List <AllMembersModel>(), "AllNoStaticBindingFlags").GetColumnNames(); CollectionAssert.Contains(colNames, "Name"); CollectionAssert.Contains(colNames, "Age"); CollectionAssert.DoesNotContain(colNames, "IsMale"); }
public void Get_column_configurations_returns_correct_count_when_identity_column_present() { Translator.AddProfile <ColumnConfigurationTestProfile>(); Translator.ApplyUpdates(); var translation = Translator.GetTranslations(x => x.TranslationProfile.GetType() == typeof(ColumnConfigurationTestProfile) && x.TranslationSettings.TranslationName == "WithIdentityColumn") .FirstOrDefault(); Assert.AreEqual(4, translation.GetColumnConfigurations().Count); }
public void Translate_to_DbParameters_db_type_is_assigned() { Translator.AddProfile <BasicProfile>(); Translator.ApplyUpdates(); var dbParam = Translator.TranslateToDbParameter <BasicProfile, TestPerson>(people, new DbParameterSettings("myParam", "myDbObjectName"), "Translation1"); Assert.AreEqual(DbType.Object, dbParam.DbType); Assert.AreEqual(SqlDbType.Structured, ((SqlParameter)dbParam).SqlDbType); }