public void Deserializes() { var form = new PolymorphicCandidateDescriptor("lorem", typeof(FormA)); var formProvider = Mock.Of <IPolymorphicCandidateProvider>(); Mock.Get(formProvider).Setup(p => p.GetAll()).Returns(new List <PolymorphicCandidateDescriptor> { form }); Mock.Get(formProvider).Setup(p => p.Get("lorem")).Returns(form); var sut = new PolymorphicFormConverter(Mock.Of <ILogger <PolymorphicFormConverter> >(), formProvider, Mock.Of <IHumanizer>()); var result = JsonConvert.DeserializeObject <ContentTypeA>("{ form: { type: 'lorem', value: { property: 'ipsum' } } }", sut); Assert.IsType <FormA>(result.Form); Assert.Equal("ipsum", ((FormA)result.Form).Property); }
public void Serializes() { var form = new PolymorphicCandidateDescriptor("lorem", typeof(FormA)); var formProvider = Mock.Of <IPolymorphicCandidateProvider>(); Mock.Get(formProvider).Setup(p => p.GetAll()).Returns(new List <PolymorphicCandidateDescriptor> { form }); Mock.Get(formProvider).Setup(p => p.Get("lorem")).Returns(form); Mock.Get(formProvider).Setup(p => p.Get(typeof(FormA))).Returns(form); var sut = new PolymorphicFormConverter(Mock.Of <ILogger <PolymorphicFormConverter> >(), formProvider, Mock.Of <IHumanizer>()); var result = JsonConvert.SerializeObject(new ContentTypeA { Form = new FormA { Property = "ipsum" } }, sut); Assert.Equal("{\"Form\":{\"type\":\"lorem\",\"name\":null,\"value\":{\"property\":\"ipsum\"}}}", result); }