public void CanCompareForEquality() { var aAlias = TestEnum.A; // Resolve compiler warning Assert.True(TestEnum.A.Equals(TestEnum.A)); Assert.True(TestEnum.A.Equals((object)TestEnum.A)); Assert.True(aAlias == TestEnum.A); Assert.False(aAlias != TestEnum.A); Assert.False(TestEnum.A.Equals(TestEnum.B)); Assert.False(TestEnum.A.Equals((object)TestEnum.B)); Assert.False(TestEnum.A == TestEnum.B); Assert.True(TestEnum.A != TestEnum.B); Assert.False(TestEnum.A.Equals(TestEnum.Create("c"))); Assert.False(TestEnum.A.Equals((object)TestEnum.Create("c"))); Assert.False(TestEnum.A == TestEnum.Create("c")); Assert.True(TestEnum.A != TestEnum.Create("c")); Assert.True(TestEnum.Create("a").Equals(TestEnum.A)); Assert.True(TestEnum.Create("a").Equals((object)TestEnum.A)); Assert.True(TestEnum.Create("a") == TestEnum.A); Assert.False(TestEnum.Create("a") != TestEnum.A); Assert.True(TestEnum.Special(TestEnum.A).Equals(TestEnum.Special(TestEnum.A))); Assert.True(TestEnum.Special(TestEnum.A).Equals((object)TestEnum.Special(TestEnum.A))); Assert.True(TestEnum.Special(TestEnum.A) == TestEnum.Special(TestEnum.A)); Assert.False(TestEnum.Special(TestEnum.A) != TestEnum.Special(TestEnum.A)); Assert.False(TestEnum.Special(TestEnum.A).Equals(TestEnum.Special(TestEnum.B))); Assert.False(TestEnum.Special(TestEnum.A).Equals((object)TestEnum.Special(TestEnum.B))); Assert.False(TestEnum.Special(TestEnum.A) == TestEnum.Special(TestEnum.B)); Assert.True(TestEnum.Special(TestEnum.A) != TestEnum.Special(TestEnum.B)); }
public void CanConvertEnumToString() { Assert.Equal("a", TestEnum.A.ToString()); Assert.Equal("b", TestEnum.B.ToString()); Assert.Equal("c", TestEnum.Create("c").ToString()); Assert.Equal("a", (string)TestEnum.A); Assert.Equal("b", (string)TestEnum.B); Assert.Equal("c", (string)TestEnum.Create("c")); }
public void CanSerializeUnknownValue() { const string ExpectedJson = @"{""ID"":1,""Test"":""unknown""}"; var model = new Model() { ID = 1, Test = TestEnum.Create("unknown") }; string actualJson = JsonConvert.SerializeObject(model); Assert.Equal(ExpectedJson, actualJson); }
public void CanDeserializeUnknownValue() { const string Json = @"{""ID"":0,""Test"":""unknown""}"; var expectedModel = new Model() { ID = 0, Test = TestEnum.Create("unknown") }; Model actualModel = JsonConvert.DeserializeObject <Model>(Json); Assert.Equal(expectedModel.ID, actualModel.ID); // Value equality should work, but reference equality shouldn't. Assert.NotSame(expectedModel.Test, actualModel.Test); Assert.Equal(expectedModel.Test, actualModel.Test); }