mirror of
https://github.com/zoriya/octokit.net.git
synced 2026-06-06 12:03:19 +00:00
Add some unit tests for enum serialization
This commit is contained in:
@@ -108,6 +108,20 @@ namespace Octokit.Tests
|
||||
|
||||
Assert.Equal("{\"name\":\"RmVycmlzIEJ1ZWxsZXI=\",\"description\":\"stuff\",\"content\":\"RGF5IG9mZg==\"}", json);
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void HandlesEnum()
|
||||
{
|
||||
var item = new ObjectWithEnumProperty
|
||||
{
|
||||
Name = "Ferris Bueller",
|
||||
SomeEnum = SomeEnum.PlusOne
|
||||
};
|
||||
|
||||
var json = new SimpleJsonSerializer().Serialize(item);
|
||||
|
||||
Assert.Equal("{\"name\":\"Ferris Bueller\",\"some_enum\":\"+1\"}", json);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -282,6 +296,36 @@ namespace Octokit.Tests
|
||||
Assert.False(sample.IsSomething);
|
||||
Assert.True(sample.Private);
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void DeserializesEnum()
|
||||
{
|
||||
const string json = @"{""some_enum"":""unicode""}";
|
||||
|
||||
var sample = new SimpleJsonSerializer().Deserialize<ObjectWithEnumProperty>(json);
|
||||
|
||||
Assert.Equal(SomeEnum.Unicode, sample.SomeEnum);
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void RemovesDashFromEnums()
|
||||
{
|
||||
const string json = @"{""some_enum"":""utf-8""}";
|
||||
|
||||
var sample = new SimpleJsonSerializer().Deserialize<ObjectWithEnumProperty>(json);
|
||||
|
||||
Assert.Equal(SomeEnum.Utf8, sample.SomeEnum);
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void UnderstandsParameterAttribute()
|
||||
{
|
||||
const string json = @"{""some_enum"":""+1""}";
|
||||
|
||||
var sample = new SimpleJsonSerializer().Deserialize<ObjectWithEnumProperty>(json);
|
||||
|
||||
Assert.Equal(SomeEnum.PlusOne, sample.SomeEnum);
|
||||
}
|
||||
}
|
||||
|
||||
public class Sample
|
||||
@@ -305,4 +349,22 @@ namespace Octokit.Tests
|
||||
public string Description { get; set; }
|
||||
}
|
||||
}
|
||||
|
||||
public class ObjectWithEnumProperty
|
||||
{
|
||||
public string Name { get; set; }
|
||||
|
||||
public SomeEnum SomeEnum { get; set; }
|
||||
}
|
||||
|
||||
public enum SomeEnum
|
||||
{
|
||||
[Parameter(Value = "+1")]
|
||||
PlusOne,
|
||||
Utf8,
|
||||
[Parameter(Value = "something else")]
|
||||
SomethingElse,
|
||||
Unicode
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user