public void TryConvert_AnonymousType_ReturnsStructureToken() { var logger = Mock.Of <ILogger>(); var policy = new StructureConversionPolicy(logger); var value = new { Foo = Some.String(), Bar = Some.Int() }; var converterMock = new Mock <IPropertyConverter>(); converterMock.Setup(m => m.Convert(It.IsAny <object>())).Returns <object>(o => new ScalarToken(o)); var converter = converterMock.Object; IPropertyToken token; Assert.True(policy.TryConvert(converter, value, out token)); var structure = token as StructureToken; Assert.NotNull(structure); Assert.Null(structure.TypeName); Assert.Equal(2, structure.Properties.Count); }
public void TryConvert_NullConverter_ThrowsArgumentNullException() { var logger = Mock.Of <ILogger>(); var policy = new StructureConversionPolicy(logger); IPropertyToken token; Assert.Throws <ArgumentNullException>(() => policy.TryConvert(null, null, out token)); }
public void TryConvert_NullValue_ReturnsFalse() { var logger = Mock.Of <ILogger>(); var policy = new StructureConversionPolicy(logger); var converter = Mock.Of <IPropertyConverter>(); IPropertyToken token; Assert.False(policy.TryConvert(converter, null, out token)); }
public void TryConvert_Object_ReturnsStructureToken() { var logger = Mock.Of <ILogger>(); var policy = new StructureConversionPolicy(logger); var converter = Mock.Of <IPropertyConverter>(); IPropertyToken token; Assert.True(policy.TryConvert(converter, new object(), out token)); var structure = token as StructureToken; Assert.NotNull(structure); Assert.Equal(typeof(object).Name, structure.TypeName); Assert.Equal(0, structure.Properties.Count); }
public void TryConvert_NamedIndexerThrows_ReturnsStructureToken() { var logger = Mock.Of <ILogger>(); var policy = new StructureConversionPolicy(logger); var converterMock = new Mock <IPropertyConverter>(); converterMock.Setup(m => m.Convert(It.IsAny <object>())).Returns <object>(o => new ScalarToken(o)); var converter = converterMock.Object; IPropertyToken token; Assert.True(policy.TryConvert(converter, new IndexerThrower(), out token)); var structure = token as StructureToken; Assert.NotNull(structure); Assert.Equal(nameof(IndexerThrower), structure.TypeName); Assert.Equal(1, structure.Properties.Count); Assert.Equal(nameof(IndexerThrower.Doesnt), structure.Properties[0].Name); Assert.IsType <ScalarToken>(structure.Properties[0].Value); }