public void TestNotEmptyConverter()
        {
            var chain = new ConverterChain();

            chain.Converters.Add(new EmptyConverter());
            chain.Converters.Add(new BooleanInverter());

            Assert.AreEqual(false, chain.Convert(new int[0], null, null, null));
            Assert.AreEqual(true, chain.Convert(new[] { 1 }, null, null, null));
        }
示例#2
0
        public void ConvertBackThrowsException()
        {
            // Arrange
            var conv = new ConverterChain();

            // Act
            var ex = ExceptionAssert.Catch <NotSupportedException>(() => conv.ConvertBack(null, null, null, null));

            // Assert
            Assert.IsNotNull(ex);
        }
        public void TestInvertedVisibilityConverter()
        {
            var chain = new ConverterChain();

            chain.Converters.Add(new BooleanInverter());
            chain.Converters.Add(new BooleanToVisibilityConverter());

            Assert.AreEqual(Visibility.Collapsed, chain.Convert(true, null, null, null));
            Assert.AreEqual(Visibility.Visible, chain.Convert(false, null, null, null));

            Assert.AreEqual(true, chain.ConvertBack(Visibility.Collapsed, typeof(bool), null, null));
            Assert.AreEqual(false, chain.ConvertBack(Visibility.Visible, typeof(bool), null, null));
        }
        public void TestInvertedContainsVisibilityConverter()
        {
            var chain = new ConverterChain();

            chain.MultiConverter = new ContainsConverter();
            chain.Converters.Add(new BooleanInverter());
            chain.Converters.Add(new BooleanToVisibilityConverter());

            var array = new[] { 1, 2 };

            Assert.AreEqual(Visibility.Collapsed, chain.Convert(new object[] { array, 1 }, null, null, null));
            Assert.AreEqual(Visibility.Collapsed, chain.Convert(new object[] { array, 2 }, null, null, null));
            Assert.AreEqual(Visibility.Visible, chain.Convert(new object[] { array, 3 }, null, null, null));
        }
示例#5
0
        public void WhenConvertingWithChainedConvertersThenResultWasConvertedByEachConverterInTheExpectedOrder()
        {
            var emptyStringToBooleanConverter = new EmptyStringToBooleanConverter();
            var inverseBooleanConverter       = new InverseBooleanConverter();

            var convertersChain = new ConverterChain(new Collection <IValueConverter>()
            {
                emptyStringToBooleanConverter, inverseBooleanConverter
            });

            object result = convertersChain.Convert("just a string", typeof(bool), null, new CultureInfo("en-us"));

            Assert.IsInstanceOfType(result, typeof(bool));
            Assert.AreEqual(result, true);
        }
示例#6
0
        public void ConvertersAreChainedCorrectly()
        {
            // Arrange
            var c1 = new Mock <IValueConverter>();
            var c2 = new Mock <IValueConverter>();
            var c3 = new Mock <IValueConverter>();

            c1.Setup(c => c.Convert(123, typeof(string), 444, CultureInfo.InvariantCulture)).Returns(124).Verifiable();
            c2.Setup(c => c.Convert(124, typeof(string), 444, CultureInfo.InvariantCulture)).Returns(125).Verifiable();
            c3.Setup(c => c.Convert(125, typeof(string), 444, CultureInfo.InvariantCulture)).Returns(126).Verifiable();

            // Act
            var chain = new ConverterChain {
                c1.Object, c2.Object, c3.Object
            };

            var result = chain.Convert(123, typeof(string), 444, CultureInfo.InvariantCulture);

            // Assert
            Assert.AreEqual(126, result);
            c1.VerifyAll();
            c2.VerifyAll();
            c3.VerifyAll();
        }