public virtual void TestGetLabeledProperties() { LabeledStringProperties labeledStringProperties = CreateLabeledStringProperties(); List <IPropertyLabel> labels = new List <IPropertyLabel>(); labels.Add(LabeledConfigurationProperties.NewLabel(TestDataCenterSetting.DC_KEY, "sh-1")); labels.Add(LabeledConfigurationProperties.NewLabel(TestDataCenterSetting.APP_KEY, "app-1")); PropertyLabels propertyLabels = LabeledConfigurationProperties.NewLabels(labels); LabeledKey <string> key = LabeledConfigurationProperties.NewKeyBuilder <String>().SetKey("not-exist") .SetPropertyLabels(propertyLabels).Build(); IProperty <LabeledKey <string>, string> property = labeledStringProperties.GetStringProperty(key); Console.WriteLine("property: " + property + "\n"); Assert.Null(property.Value); key = LabeledConfigurationProperties.NewKeyBuilder <String>().SetKey("not-exist2") .SetPropertyLabels(propertyLabels).Build(); property = labeledStringProperties.GetStringProperty(key, "default"); Console.WriteLine("property: " + property + "\n"); Assert.Equal("default", property.Value); key = LabeledConfigurationProperties.NewKeyBuilder <String>().SetKey("exist").SetPropertyLabels(propertyLabels) .Build(); property = labeledStringProperties.GetStringProperty(key, "default"); Console.WriteLine("property: " + property + "\n"); Assert.Equal("ok", property.Value); }
public virtual void TestSameKeyDifferentConfigForLabeledProperties() { LabeledStringProperties labeledStringProperties = CreateLabeledStringProperties(); List <IPropertyLabel> labels = new List <IPropertyLabel>(); labels.Add(LabeledConfigurationProperties.NewLabel(TestDataCenterSetting.DC_KEY, "sh-1")); labels.Add(LabeledConfigurationProperties.NewLabel(TestDataCenterSetting.APP_KEY, "app-1")); PropertyLabels propertyLabels = LabeledConfigurationProperties.NewLabels(labels); LabeledKey <string> key = LabeledConfigurationProperties.NewKeyBuilder <String>().SetKey("map-value") .SetPropertyLabels(propertyLabels).Build(); IProperty <LabeledKey <string>, Dictionary <String, string> > property = labeledStringProperties.GetDictionaryProperty(key); Dictionary <String, string> expected = new Dictionary <string, string>() { { "k1", "v1" }, { "k2", "v2" }, { "k3", "v3" } }; Assert.Equal(expected, property.Value); Assert.Throws <ArgumentException>(() => labeledStringProperties.GetDictionaryProperty( key, StringToIntConverter.Default, StringToLongConverter.Default)); }
public virtual void TestSameConfigSameLabeledProperty() { LabeledStringProperties labeledStringProperties = CreateLabeledStringProperties(); List <IPropertyLabel> labels = new List <IPropertyLabel>(); labels.Add(LabeledConfigurationProperties.NewLabel(TestDataCenterSetting.DC_KEY, "sh-1")); labels.Add(LabeledConfigurationProperties.NewLabel(TestDataCenterSetting.APP_KEY, "app-1")); PropertyLabels propertyLabels = LabeledConfigurationProperties.NewLabels(labels); LabeledKey <string> key = LabeledConfigurationProperties.NewKeyBuilder <String>().SetKey("map-value") .SetPropertyLabels(propertyLabels).Build(); IProperty <LabeledKey <string>, Dictionary <String, string> > property = labeledStringProperties.GetDictionaryProperty(key); Dictionary <String, string> expected = new Dictionary <string, string>() { { "k1", "v1" }, { "k2", "v2" }, { "k3", "v3" } }; Assert.Equal(expected, property.Value); IProperty <LabeledKey <string>, Dictionary <String, string> > property2 = labeledStringProperties.GetDictionaryProperty(key); Console.WriteLine("property2: " + property + "\n"); Assert.True(object.ReferenceEquals(property, property2)); }
public virtual void TestGetTypedLabeledProperties() { LabeledStringProperties labeledStringProperties = CreateLabeledStringProperties(); List <IPropertyLabel> labels = new List <IPropertyLabel>(); labels.Add(LabeledConfigurationProperties.NewLabel(TestDataCenterSetting.DC_KEY, "sh-1")); labels.Add(LabeledConfigurationProperties.NewLabel(TestDataCenterSetting.APP_KEY, "app-1")); PropertyLabels propertyLabels = LabeledConfigurationProperties.NewLabels(labels); LabeledKey <string> key = LabeledConfigurationProperties.NewKeyBuilder <String>().SetKey("int-value") .SetPropertyLabels(propertyLabels).Build(); IProperty <LabeledKey <string>, int?> property = labeledStringProperties.GetIntProperty(key); Console.WriteLine("property: " + property + "\n"); int?expected = 1; Assert.Equal(expected, property.Value); key = LabeledConfigurationProperties.NewKeyBuilder <String>().SetKey("list-value") .SetPropertyLabels(propertyLabels).Build(); IProperty <LabeledKey <string>, List <string> > property2 = labeledStringProperties.GetListProperty(key); Console.WriteLine("property: " + property2 + "\n"); List <string> expected2 = new List <string>() { "s1", "s2", "s3" }; Assert.Equal(expected2, property2.Value); key = LabeledConfigurationProperties.NewKeyBuilder <String>().SetKey("map-value") .SetPropertyLabels(propertyLabels).Build(); IProperty <LabeledKey <string>, Dictionary <String, string> > property3 = labeledStringProperties.GetDictionaryProperty(key); Console.WriteLine("property: " + property3 + "\n"); Dictionary <String, string> expected3 = new Dictionary <string, string>() { { "k1", "v1" }, { "k2", "v2" }, { "k3", "v3" } }; Assert.Equal(expected3, property3.Value); key = LabeledConfigurationProperties.NewKeyBuilder <String>().SetKey("int-list-value") .SetPropertyLabels(propertyLabels).Build(); IProperty <LabeledKey <string>, List <int?> > property4 = labeledStringProperties.GetListProperty(key, StringToIntConverter.Default); Console.WriteLine("property: " + property4 + "\n"); List <int?> expected4 = new List <int?>() { 1, 2, 3 }; Assert.Equal(expected4, property4.Value); key = LabeledConfigurationProperties.NewKeyBuilder <String>().SetKey("int-long-map-value") .SetPropertyLabels(propertyLabels).Build(); IProperty <LabeledKey <string>, Dictionary <int?, long?> > property5 = labeledStringProperties.GetDictionaryProperty(key, StringToIntConverter.Default, StringToLongConverter.Default); Console.WriteLine("property: " + property5 + "\n"); Dictionary <int?, long?> expected5 = new Dictionary <int?, long?>() { { 1, 2L }, { 3, 4L }, { 5, 6L } }; Assert.Equal(expected5, property5.Value); }