8c30f575919268b77c9c49963e07fd4f2b09f253
[platform/upstream/dotnet/runtime.git] /
1 // Licensed to the .NET Foundation under one or more agreements.
2 // The .NET Foundation licenses this file to you under the MIT license.
3 // See the LICENSE file in the project root for more information.
4
5 using Xunit;
6
7 namespace System.Configuration.Tests
8 {
9     public class SettingElementTests
10     {
11         [Fact]
12         public void TestForInequality()
13         {
14             var ElementOne = new SettingElement("NotEqualOne", SettingsSerializeAs.String);
15             var ElementTwo = new SettingElement("NotEqualTwo", SettingsSerializeAs.String);
16             Assert.False(ElementOne.Equals(ElementTwo));
17         }
18
19         [Fact]
20         public void TestForEquality()
21         {
22             var ElementOne = new SettingElement("TheExactSameName", SettingsSerializeAs.String);
23             var ElementTwo = new SettingElement("TheExactSameName", SettingsSerializeAs.String);
24             Assert.True(ElementOne.Equals(ElementTwo));
25         }
26
27         [Fact]
28         public void DefaultSettingSerializationIsString()
29         {
30             var Element = new SettingElement();
31             Assert.Equal(SettingsSerializeAs.String, Element.SerializeAs);
32         }
33
34         [Fact]
35         public void DefaultNameIsEmptyString()
36         {
37             var Element = new SettingElement();
38             Assert.Equal(string.Empty, Element.Name);
39         }
40
41         [Fact]
42         public void DefaultValueIsNull()
43         {
44             var Element = new SettingElement();
45             Assert.Null(Element.Value.CurrentConfiguration);
46         }
47
48         [Fact]
49         public void DefaultConstructorEquality()
50         {
51             var ElementOne = new SettingElement();
52             var ElementTwo = new SettingElement();
53             Assert.True(ElementOne.Equals(ElementTwo));
54         }
55
56         [SkipOnTargetFramework(TargetFrameworkMonikers.NetFramework, "Full framework does not have the fix for https://github.com/dotnet/corefx/issues/27875")]
57         [Fact]
58         public void DefaultConstructorEqualHashCodes()
59         {
60             var ElementOne = new SettingElement();
61             var ElementTwo = new SettingElement();
62             Assert.Equal(ElementOne.GetHashCode(), ElementTwo.GetHashCode());
63         }
64
65         [Fact]
66         public void NonDefaultValueHasNonNullHashCode()
67         {
68             var Element = new SettingElement("Test", SettingsSerializeAs.Xml)
69             {
70                 Value = new SettingValueElement
71                 {
72                     ValueXml = new ConfigXmlDocument
73                     {
74                     }
75                 }
76             };
77         }
78     }
79 }