public void TestFallbackValueIsUsedIfSourceResolutionFails() { MockSourceBinding mockSource; MockTargetBinding mockTarget; var mockValueConverter = new MockValueConverter() { ConversionResult = "A test value" }; var parameter = new { Ignored = 12 }; var fallback = new { Fred = "Not Barney" }; var binding = TestSetupCommon(mockValueConverter, parameter, fallback, typeof(object), out mockSource, out mockTarget); Assert.AreEqual(1, mockValueConverter.ConversionsRequested.Count); Assert.AreEqual(0, mockValueConverter.ConversionsBackRequested.Count); Assert.AreEqual(1, mockTarget.Values.Count); Assert.AreEqual("A test value", mockTarget.Values[0]); mockSource.TryGetValueResult = false; mockSource.FireSourceChanged(); Assert.AreEqual(1, mockValueConverter.ConversionsRequested.Count); Assert.AreEqual(0, mockValueConverter.ConversionsBackRequested.Count); Assert.AreEqual(2, mockTarget.Values.Count); Assert.AreEqual(fallback, mockTarget.Values[1]); }
public void TestConverterParameterIsUsedForConvert() { MockSourceBinding mockSource; MockTargetBinding mockTarget; var mockValueConverter = new MockValueConverter() { ConversionResult = "Test ConversionResult", }; var parameter = new { Ignored = 12 }; var binding = TestSetupCommon(mockValueConverter, parameter, typeof(object), out mockSource, out mockTarget); Assert.AreEqual(1, mockTarget.Values.Count); Assert.AreEqual("Test ConversionResult", mockTarget.Values[0]); Assert.AreEqual(1, mockValueConverter.ConversionParameters.Count); Assert.AreEqual(parameter, mockValueConverter.ConversionParameters[0]); }
public void TestConverterIsUsedForConvert() { MockSourceBinding mockSource; MockTargetBinding mockTarget; var mockValueConverter = new MockValueConverter() { ConversionResult = "Test ConversionResult", }; var parameter = new { Ignored = 12 }; var binding = TestSetupCommon(mockValueConverter, parameter, typeof(object), out mockSource, out mockTarget); Assert.Single(mockTarget.Values); Assert.Equal("Test ConversionResult", mockTarget.Values[0]); Assert.Single(mockValueConverter.ConversionsRequested); Assert.Equal("TryGetValueValue", mockValueConverter.ConversionsRequested[0]); }
public void TestDefaultValueIsUsedIfSourceResolutionFails_Object() { MockSourceBinding mockSource; MockTargetBinding mockTarget; var mockValueConverter = new MockValueConverter() { ConversionResult = "A test value" }; var parameter = new { Ignored = 12 }; object fallback = null; var binding = TestSetupCommon(mockValueConverter, parameter, fallback, typeof(object), out mockSource, out mockTarget); Assert.AreEqual(1, mockValueConverter.ConversionsRequested.Count); Assert.AreEqual(0, mockValueConverter.ConversionsBackRequested.Count); Assert.AreEqual(1, mockTarget.Values.Count); Assert.AreEqual("A test value", mockTarget.Values[0]); mockSource.TryGetValueResult = false; mockSource.FireSourceChanged(); Assert.AreEqual(1, mockValueConverter.ConversionsRequested.Count); Assert.AreEqual(0, mockValueConverter.ConversionsBackRequested.Count); Assert.AreEqual(2, mockTarget.Values.Count); Assert.AreEqual(null, mockTarget.Values[1]); mockSource.TryGetValueResult = false; mockSource.FireSourceChanged(); Assert.AreEqual(1, mockValueConverter.ConversionsRequested.Count); Assert.AreEqual(0, mockValueConverter.ConversionsBackRequested.Count); Assert.AreEqual(3, mockTarget.Values.Count); Assert.AreEqual(null, mockTarget.Values[2]); mockSource.TryGetValueValue = "Fred"; mockSource.TryGetValueResult = true; mockSource.FireSourceChanged(); Assert.AreEqual(2, mockValueConverter.ConversionsRequested.Count); Assert.AreEqual(0, mockValueConverter.ConversionsBackRequested.Count); Assert.AreEqual(4, mockTarget.Values.Count); Assert.AreEqual("A test value", mockTarget.Values[3]); }
public void TestDefaultValueIsUsedIfSourceResolutionFails_NullableInt() { MockSourceBinding mockSource; MockTargetBinding mockTarget; var mockValueConverter = new MockValueConverter() { ConversionResult = "A test value" }; var parameter = new { Ignored = 12 }; object fallback = null; var binding = TestSetupCommon(mockValueConverter, parameter, fallback, typeof(int?), out mockSource, out mockTarget); Assert.Single(mockValueConverter.ConversionsRequested); Assert.Empty(mockValueConverter.ConversionsBackRequested); Assert.Single(mockTarget.Values); Assert.Equal("A test value", mockTarget.Values[0]); mockSource.TryGetValueResult = false; mockSource.FireSourceChanged(); Assert.Single(mockValueConverter.ConversionsRequested); Assert.Empty(mockValueConverter.ConversionsBackRequested); Assert.Equal(2, mockTarget.Values.Count); Assert.Null(mockTarget.Values[1]); mockSource.TryGetValueResult = false; mockSource.FireSourceChanged(); Assert.Single(mockValueConverter.ConversionsRequested); Assert.Empty(mockValueConverter.ConversionsBackRequested); Assert.Equal(3, mockTarget.Values.Count); Assert.Null(mockTarget.Values[2]); mockSource.TryGetValueResult = false; mockSource.FireSourceChanged(); Assert.Single(mockValueConverter.ConversionsRequested); Assert.Empty(mockValueConverter.ConversionsBackRequested); Assert.Equal(4, mockTarget.Values.Count); Assert.Null(mockTarget.Values[3]); }
public void TestFallbackValueIsUsedIfConversionFails() { MockSourceBinding mockSource; MockTargetBinding mockTarget; var mockValueConverter = new MockValueConverter() { ThrowOnConversion = true }; var parameter = new { Ignored = 12 }; var fallback = new { Fred = "Not Barney" }; var binding = TestSetupCommon(mockValueConverter, parameter, fallback, typeof(object), out mockSource, out mockTarget); Assert.AreEqual(1, mockValueConverter.ConversionsRequested.Count); Assert.AreEqual(0, mockValueConverter.ConversionsBackRequested.Count); Assert.AreEqual(1, mockTarget.Values.Count); Assert.AreEqual(fallback, mockTarget.Values[0]); }
public void TestSourceTypeIsUsedForConvertBack() { MockSourceBinding mockSource; MockTargetBinding mockTarget; var mockValueConverter = new MockValueConverter() { }; var parameter = new { Ignored = 12 }; var binding = TestSetupCommon(mockValueConverter, parameter, typeof(object), out mockSource, out mockTarget); var aType = new { Hello = 34 }; mockSource.SourceType = aType.GetType(); mockTarget.FireValueChanged(new MvxTargetChangedEventArgs("Ignored")); Assert.AreEqual(1, mockValueConverter.ConversionBackTypes.Count); Assert.AreEqual(aType.GetType(), mockValueConverter.ConversionBackTypes[0]); }
public void TestTargetTypeIsUsedForConvert() { MockSourceBinding mockSource; MockTargetBinding mockTarget; var mockValueConverter = new MockValueConverter() { }; var parameter = new { Ignored = 12 }; var targetType = new { Foo = 23 }.GetType(); var binding = TestSetupCommon(mockValueConverter, parameter, targetType, out mockSource, out mockTarget); mockSource.TryGetValueValue = "new value"; mockSource.FireSourceChanged(); Assert.AreEqual(2, mockValueConverter.ConversionTypes.Count); Assert.AreEqual(targetType, mockValueConverter.ConversionTypes[0]); Assert.AreEqual(targetType, mockValueConverter.ConversionTypes[1]); }
public void TestConverterParameterIsUsedForConvertBack() { MockSourceBinding mockSource; MockTargetBinding mockTarget; var mockValueConverter = new MockValueConverter() { ConversionBackResult = "Test ConversionBackResult", }; var parameter = new { Ignored = 12 }; var binding = TestSetupCommon(mockValueConverter, parameter, typeof(object), out mockSource, out mockTarget); var valueChanged = new { Hello = 34 }; mockTarget.FireValueChanged(new MvxTargetChangedEventArgs(valueChanged)); Assert.AreEqual(1, mockSource.ValuesSet.Count); Assert.AreEqual("Test ConversionBackResult", mockSource.ValuesSet[0]); Assert.AreEqual(1, mockValueConverter.ConversionBackParameters.Count); Assert.AreEqual(parameter, mockValueConverter.ConversionBackParameters[0]); }
public void TestDefaultValueIsUsedIfConversionFails_NullableInt() { MockSourceBinding mockSource; MockTargetBinding mockTarget; var mockValueConverter = new MockValueConverter() { ThrowOnConversion = true }; var parameter = new { Ignored = 12 }; object fallback = null; var binding = TestSetupCommon(mockValueConverter, parameter, fallback, typeof(int?), out mockSource, out mockTarget); Assert.AreEqual(1, mockValueConverter.ConversionsRequested.Count); Assert.AreEqual(0, mockValueConverter.ConversionsBackRequested.Count); Assert.AreEqual(1, mockTarget.Values.Count); Assert.AreEqual(null, mockTarget.Values[0]); mockSource.TryGetValueValue = "Fred"; mockSource.FireSourceChanged(); Assert.AreEqual(2, mockValueConverter.ConversionsRequested.Count); Assert.AreEqual(0, mockValueConverter.ConversionsBackRequested.Count); Assert.AreEqual(2, mockTarget.Values.Count); Assert.AreEqual(null, mockTarget.Values[1]); mockSource.TryGetValueValue = "Betty"; mockSource.FireSourceChanged(); Assert.AreEqual(3, mockValueConverter.ConversionsRequested.Count); Assert.AreEqual(0, mockValueConverter.ConversionsBackRequested.Count); Assert.AreEqual(3, mockTarget.Values.Count); Assert.AreEqual(null, mockTarget.Values[2]); }
public void TestDefaultValueIsUsedIfSourceResolutionFails_NullableInt() { MockSourceBinding mockSource; MockTargetBinding mockTarget; var mockValueConverter = new MockValueConverter() { ConversionResult = "A test value" }; var parameter = new { Ignored = 12 }; object fallback = null; var binding = TestSetupCommon(mockValueConverter, parameter, fallback, typeof(int?), out mockSource, out mockTarget); Assert.AreEqual(1, mockValueConverter.ConversionsRequested.Count); Assert.AreEqual(0, mockValueConverter.ConversionsBackRequested.Count); Assert.AreEqual(1, mockTarget.Values.Count); Assert.AreEqual("A test value", mockTarget.Values[0]); mockSource.TryGetValueResult = false; mockSource.FireSourceChanged(); Assert.AreEqual(1, mockValueConverter.ConversionsRequested.Count); Assert.AreEqual(0, mockValueConverter.ConversionsBackRequested.Count); Assert.AreEqual(2, mockTarget.Values.Count); Assert.AreEqual(null, mockTarget.Values[1]); mockSource.TryGetValueResult = false; mockSource.FireSourceChanged(); Assert.AreEqual(1, mockValueConverter.ConversionsRequested.Count); Assert.AreEqual(0, mockValueConverter.ConversionsBackRequested.Count); Assert.AreEqual(3, mockTarget.Values.Count); Assert.AreEqual(null, mockTarget.Values[2]); mockSource.TryGetValueResult = false; mockSource.FireSourceChanged(); Assert.AreEqual(1, mockValueConverter.ConversionsRequested.Count); Assert.AreEqual(0, mockValueConverter.ConversionsBackRequested.Count); Assert.AreEqual(4, mockTarget.Values.Count); Assert.AreEqual(null, mockTarget.Values[3]); }
public void TestDefaultValueIsUsedIfConversionFails_NullableInt() { MockSourceBinding mockSource; MockTargetBinding mockTarget; var mockValueConverter = new MockValueConverter() { ThrowOnConversion = true }; var parameter = new { Ignored = 12 }; object fallback = null; var binding = TestSetupCommon(mockValueConverter, parameter, fallback, typeof(int?), out mockSource, out mockTarget); Assert.AreEqual(1, mockValueConverter.ConversionsRequested.Count); Assert.AreEqual(0, mockValueConverter.ConversionsBackRequested.Count); Assert.AreEqual(1, mockTarget.Values.Count); Assert.AreEqual(null, mockTarget.Values[0]); mockSource.TryGetValueValue = "Fred"; mockSource.FireSourceChanged(); Assert.AreEqual(2, mockValueConverter.ConversionsRequested.Count); Assert.AreEqual(0, mockValueConverter.ConversionsBackRequested.Count); Assert.AreEqual(2, mockTarget.Values.Count); Assert.AreEqual(null, mockTarget.Values[1]); mockSource.TryGetValueValue = "Betty"; mockSource.FireSourceChanged(); Assert.AreEqual(3, mockValueConverter.ConversionsRequested.Count); Assert.AreEqual(0, mockValueConverter.ConversionsBackRequested.Count); Assert.AreEqual(3, mockTarget.Values.Count); Assert.AreEqual(null, mockTarget.Values[2]); }
public void TestFallbackValueIsUsedIfSourceResolutionFails() { MockSourceBinding mockSource; MockTargetBinding mockTarget; var mockValueConverter = new MockValueConverter() { ConversionResult = "A test value" }; var parameter = new { Ignored = 12 }; var fallback = new { Fred = "Not Barney" }; var binding = TestSetupCommon(mockValueConverter, parameter, fallback, typeof(object), out mockSource, out mockTarget); Assert.AreEqual(1, mockValueConverter.ConversionsRequested.Count); Assert.AreEqual(0, mockValueConverter.ConversionsBackRequested.Count); Assert.AreEqual(1, mockTarget.Values.Count); Assert.AreEqual("A test value", mockTarget.Values[0]); mockSource.TryGetValueResult = false; mockSource.FireSourceChanged(); Assert.AreEqual(1, mockValueConverter.ConversionsRequested.Count); Assert.AreEqual(0, mockValueConverter.ConversionsBackRequested.Count); Assert.AreEqual(2, mockTarget.Values.Count); Assert.AreEqual(fallback, mockTarget.Values[1]); }
public void TestFallbackValueIsUsedIfConversionFails() { MockSourceBinding mockSource; MockTargetBinding mockTarget; var mockValueConverter = new MockValueConverter() { ThrowOnConversion = true }; var parameter = new { Ignored = 12 }; var fallback = new { Fred = "Not Barney" }; var binding = TestSetupCommon(mockValueConverter, parameter, fallback, typeof(object), out mockSource, out mockTarget); Assert.AreEqual(1, mockValueConverter.ConversionsRequested.Count); Assert.AreEqual(0, mockValueConverter.ConversionsBackRequested.Count); Assert.AreEqual(1, mockTarget.Values.Count); Assert.AreEqual(fallback, mockTarget.Values[0]); }
public void TestSourceTypeIsUsedForConvertBack() { MockSourceBinding mockSource; MockTargetBinding mockTarget; var mockValueConverter = new MockValueConverter() { }; var parameter = new { Ignored = 12 }; var binding = TestSetupCommon(mockValueConverter, parameter, typeof(object), out mockSource, out mockTarget); var aType = new { Hello = 34 }; mockSource.SourceType = aType.GetType(); mockTarget.FireValueChanged(new MvxTargetChangedEventArgs("Ignored")); Assert.AreEqual(1, mockValueConverter.ConversionBackTypes.Count); Assert.AreEqual(aType.GetType(), mockValueConverter.ConversionBackTypes[0]); }
public void TestTargetTypeIsUsedForConvert() { MockSourceBinding mockSource; MockTargetBinding mockTarget; var mockValueConverter = new MockValueConverter() { }; var parameter = new { Ignored = 12 }; var targetType = new { Foo = 23 }.GetType(); var binding = TestSetupCommon(mockValueConverter, parameter, targetType, out mockSource, out mockTarget); mockSource.TryGetValueValue = "new value"; mockSource.FireSourceChanged(); Assert.AreEqual(2, mockValueConverter.ConversionTypes.Count); Assert.AreEqual(targetType, mockValueConverter.ConversionTypes[0]); Assert.AreEqual(targetType, mockValueConverter.ConversionTypes[1]); }
public void TestConverterParameterIsUsedForConvertBack() { MockSourceBinding mockSource; MockTargetBinding mockTarget; var mockValueConverter = new MockValueConverter() { ConversionBackResult = "Test ConversionBackResult", }; var parameter = new { Ignored = 12 }; var binding = TestSetupCommon(mockValueConverter, parameter, typeof(object), out mockSource, out mockTarget); var valueChanged = new { Hello = 34 }; mockTarget.FireValueChanged(new MvxTargetChangedEventArgs(valueChanged)); Assert.AreEqual(1, mockSource.ValuesSet.Count); Assert.AreEqual("Test ConversionBackResult", mockSource.ValuesSet[0]); Assert.AreEqual(1, mockValueConverter.ConversionBackParameters.Count); Assert.AreEqual(parameter, mockValueConverter.ConversionBackParameters[0]); }
public void TestConverterParameterIsUsedForConvert() { MockSourceBinding mockSource; MockTargetBinding mockTarget; var mockValueConverter = new MockValueConverter() { ConversionResult = "Test ConversionResult", }; var parameter = new { Ignored = 12 }; var binding = TestSetupCommon(mockValueConverter, parameter, typeof(object), out mockSource, out mockTarget); Assert.AreEqual(1, mockTarget.Values.Count); Assert.AreEqual("Test ConversionResult", mockTarget.Values[0]); Assert.AreEqual(1, mockValueConverter.ConversionParameters.Count); Assert.AreEqual(parameter, mockValueConverter.ConversionParameters[0]); }