public void BindModelThrowsIfBindingContextIsNull() {
            // Arrange
            ByteArrayModelBinder binder = new ByteArrayModelBinder();

            // Act & assert
            ExceptionHelper.ExpectArgumentNullException(
                delegate {
                    binder.BindModel(null, null);
                }, "bindingContext");
        }
        public void BinderWithEmptyStringValueReturnsNull() {
            // Arrange
            SimpleValueProvider valueProvider = new SimpleValueProvider() {
                { "foo", "" }
            };

            ModelBindingContext bindingContext = new ModelBindingContext() {
                ModelName = "foo",
                ValueProvider = valueProvider
            };

            ByteArrayModelBinder binder = new ByteArrayModelBinder();

            // Act
            object binderResult = binder.BindModel(null, bindingContext);

            // Assert
            Assert.IsNull(binderResult);
        }
        public void BinderWithEmptyStringValueReturnsNull() {
            // Arrange
            ValueProviderDictionary valueProvider = new ValueProviderDictionary(null) {
                { "foo", new ValueProviderResult(String.Empty, null, null) }
            };

            ModelBindingContext bindingContext = new ModelBindingContext() {
                ModelName = "foo",
                ValueProvider = valueProvider
            };

            ByteArrayModelBinder binder = new ByteArrayModelBinder();

            // Act
            object binderResult = binder.BindModel(null, bindingContext);

            // Assert
            Assert.IsNull(binderResult);
        }
        public void BindModelWithBase64QuotedValueReturnsByteArray() {
            // Arrange
            string base64Value = Base64TestString;
            SimpleValueProvider valueProvider = new SimpleValueProvider() {
                { "foo", "\"" + base64Value + "\"" }
            };

            ModelBindingContext bindingContext = new ModelBindingContext() {
                ModelName = "foo",
                ValueProvider = valueProvider
            };

            ByteArrayModelBinder binder = new ByteArrayModelBinder();

            // Act
            byte[] boundValue = binder.BindModel(null, bindingContext) as byte[];

            // Assert
            CollectionAssert.AreEqual(Base64TestBytes, boundValue);
        }
        public void BindModelWithBase64UnquotedValueReturnsByteArray() {
            // Arrange
            string base64Value = Base64TestString;
            ValueProviderDictionary valueProvider = new ValueProviderDictionary(null) {
                { "foo", new ValueProviderResult(base64Value, base64Value, null) }
            };

            ModelBindingContext bindingContext = new ModelBindingContext() {
                ModelName = "foo",
                ValueProvider = valueProvider
            };

            ByteArrayModelBinder binder = new ByteArrayModelBinder();

            // Act
            byte[] boundValue = binder.BindModel(null, bindingContext) as byte[];

            // Assert
            CollectionAssert.AreEqual(Base64TestBytes, boundValue);
        }