public void Not_Implement_ReadJson() { var sut = new SettingsJsonConverter(); Action a = () => sut.ReadJson(null, null, null, false, null); a.Should().Throw <NotImplementedException>(); }
public void Throw_If_Given_Bad_Settings() { // arrange var serializer = new SettingsJsonConverter(); Action mightThrow = () => JsonConvert.DeserializeObject <IEnumerable <ISettings> >(@"[]", serializer); Func <IEnumerable <ISettings> > mightThrow2 = () => JsonConvert.DeserializeObject <IEnumerable <ISettings> >(@"{""Mortician.Test.SomeSettings, Mortician.Test, Version=0.0.1.0, Culture=neutral, PublicKeyToken=null"":{""Name"":""Duke""},""Mortician.Test.OtherSettings, Mortician.Test, Version=0.0.1.0, Culture=neutral, PublicKeyToken=null"":{""Num"":""hello""}}", serializer); // act // assert mightThrow.Should().Throw <SerializationException>(); mightThrow2().Should().HaveCount(1); }
public void Should_Skip_If_The_Type_Cannot_Be_Found() { // arrange var serializer = new SettingsJsonConverter(); // act var settings = JsonConvert.DeserializeObject <IEnumerable <ISettings> >( @"{""Mortician.Test.SomeSettingsThatDontExist, Mortician.Test, Version=0.0.1.0, Culture=neutral, PublicKeyToken=null"":{""Name"":""Duke""},""Mortician.Test.OtherSettings, Mortician.Test, Version=0.0.1.0, Culture=neutral, PublicKeyToken=null"":{""Num"":1}}", serializer).ToList(); // assert settings.Should().HaveCount(1); settings.OfType <OtherSettings>().First().Num.Should().Be(1); }
public void Write_Json_For_All_Settings() { var settings = new ISettings[] { new MockSettingsA(), new MockSettingsB() }; var sut = new SettingsJsonConverter(); using (var tw = new StringWriter()) using (var jw = new JsonTextWriter(tw)) { sut.WriteJson(jw, settings, null); tw.ToString().Should() .Be( "{\"McFly.WinDbg.Test.MockSettingsA\":{\"A\":null},\"McFly.WinDbg.Test.MockSettingsB\":{\"B\":null}}"); } }
public void Serialize_Settings() { // arrange var settings = new SomeSettings() { Name = "Duke" }; var other = new OtherSettings() { Num = 1 }; var all = new ISettings[] { settings, other }; var serializer = new SettingsJsonConverter(); // act var json = JsonConvert.SerializeObject(all, Formatting.None, serializer); // assert json.Should() .Be( @"{""Mortician.Test.SomeSettings, Mortician.Test, Version=0.0.1.0, Culture=neutral, PublicKeyToken=null"":{""Name"":""Duke""},""Mortician.Test.OtherSettings, Mortician.Test, Version=0.0.1.0, Culture=neutral, PublicKeyToken=null"":{""Num"":1}}"); }