public void Get_OnNonExistentProperty_ReturnsNull() {
            // Arrange
            ViewDataDictionary vd = new ViewDataDictionary();
            dynamic dynamicVD = new DynamicViewDataDictionary(() => vd);

            // Act
            object value = dynamicVD.Prop;

            // Assert
            Assert.IsNull(value);
        }
        public void Set_OnNonExistentProperty_SetsValue() {
            // Arrange
            ViewDataDictionary vd = new ViewDataDictionary();
            dynamic dynamicVD = new DynamicViewDataDictionary(() => vd);

            // Act
            dynamicVD.Prop = "NewValue";

            // Assert
            Assert.AreEqual("NewValue", dynamicVD.Prop);
            Assert.AreEqual("NewValue", vd["Prop"]);
        }
        public void Set_OnNonExistentProperty_SetsValue()
        {
            // Arrange
            ViewDataDictionary vd        = new ViewDataDictionary();
            dynamic            dynamicVD = new DynamicViewDataDictionary(() => vd);

            // Act
            dynamicVD.Prop = "NewValue";

            // Assert
            Assert.Equal("NewValue", dynamicVD.Prop);
            Assert.Equal("NewValue", vd["Prop"]);
        }
        public void Indexer_CanAccessViewDataValues()
        {
            // Arrange
            ViewDataDictionary vdd = new ViewDataDictionary();

            vdd["Foo"] = "Value for Foo";
            dynamic dvdd = DynamicViewDataDictionary.Wrap(vdd);

            // Act
            object result = dvdd["Foo"];

            // Assert
            Assert.Equal("Value for Foo", result);
        }
        public void Set_OnExistingProperty_OverridesValue() {
            // Arrange
            ViewDataDictionary vd = new ViewDataDictionary() {
                { "Prop", "Value" }
            };
            dynamic dynamicVD = new DynamicViewDataDictionary(() => vd);

            // Act
            dynamicVD.Prop = "NewValue";

            // Assert
            Assert.AreEqual("NewValue", dynamicVD.Prop);
            Assert.AreEqual("NewValue", vd["Prop"]);
        }
        public void Get_OnExistingProperty_ReturnsValue() {
            // Arrange
            ViewDataDictionary vd = new ViewDataDictionary() {
                { "Prop", "Value" }
            };
            dynamic dynamicVD = new DynamicViewDataDictionary(() => vd);

            // Act
            object value = dynamicVD.Prop;

            // Assert
            Assert.IsInstanceOfType(value, typeof(string));
            Assert.AreEqual("Value", value);
        }
        public void GetDynamicMemberNames_ReturnsKeyNamesForFilledViewDataDictionary()
        {
            // Arrange
            ViewDataDictionary vd = new ViewDataDictionary()
            {
                { "Prop1", 1 }, { "Prop2", 2 }
            };
            DynamicViewDataDictionary dvd = new DynamicViewDataDictionary(() => vd);

            // Act
            var result = dvd.GetDynamicMemberNames();

            // Assert
            Assert.Equal(new[] { "Prop1", "Prop2" }, result.OrderBy(s => s).ToArray());
        }
Example #8
0
        public void TryGetMember_OnNonExistentProperty_ReturnsNullAndSucceeds()
        {
            // Arrange
            object                    result     = null;
            ViewDataDictionary        vd         = new ViewDataDictionary();
            DynamicViewDataDictionary dynamicVD  = new DynamicViewDataDictionary(() => vd);
            Mock <GetMemberBinder>    binderMock = new Mock <GetMemberBinder>("Prop", /* ignoreCase */ false);

            // Act
            bool success = dynamicVD.TryGetMember(binderMock.Object, out result);

            // Assert
            Assert.True(success);
            Assert.Null(result);
        }
        public void Indexer_GuardClauses()
        {
            // Arrange
            ViewDataDictionary vdd  = new ViewDataDictionary();
            dynamic            dvdd = DynamicViewDataDictionary.Wrap(vdd);

            // Act & Assert
            Assert.Throws <ArgumentException>(
                () => { var x = dvdd["foo", "bar"]; },
                "DynamicViewDataDictionary only supports single indexers.");

            Assert.Throws <ArgumentException>(
                () => { var x = dvdd[42]; },
                "DynamicViewDataDictionary only supports string-based indexers.");
        }
Example #10
0
        public void TrySetMember_OnNonExistentProperty_SetsValueAndSucceeds()
        {
            // Arrange
            ViewDataDictionary        vd         = new ViewDataDictionary();
            DynamicViewDataDictionary dynamicVD  = new DynamicViewDataDictionary(() => vd);
            Mock <SetMemberBinder>    binderMock = new Mock <SetMemberBinder>("Prop", /* ignoreCase */ false);

            // Act
            bool success = dynamicVD.TrySetMember(binderMock.Object, "NewValue");

            // Assert
            Assert.True(success);
            Assert.Equal("NewValue", ((dynamic)dynamicVD).Prop);
            Assert.Equal("NewValue", vd["Prop"]);
        }
        public void TryGetMember_OnExistingProperty_ReturnsValueAndSucceeds() {
            // Arrange
            object result = null;
            ViewDataDictionary vd = new ViewDataDictionary() {
                { "Prop", "Value" }
            };
            DynamicViewDataDictionary dynamicVD = new DynamicViewDataDictionary(() => vd);
            Mock<GetMemberBinder> binderMock = new Mock<GetMemberBinder>("Prop", /* ignoreCase */ false);

            // Act
            bool success = dynamicVD.TryGetMember(binderMock.Object, out result);

            // Assert
            Assert.IsTrue(success);
            Assert.AreEqual("Value", result);
        }
        public void Get_OnExistingProperty_ReturnsValue()
        {
            // Arrange
            ViewDataDictionary vd = new ViewDataDictionary()
            {
                { "Prop", "Value" }
            };
            dynamic dynamicVD = new DynamicViewDataDictionary(() => vd);

            // Act
            object value = dynamicVD.Prop;

            // Assert
            Assert.IsType <string>(value);
            Assert.Equal("Value", value);
        }
        public void GetDynamicMemberNames_ReflectsChangesToUnderlyingViewDataDictionary()
        {
            // Arrange
            ViewDataDictionary vd = new ViewDataDictionary();

            vd["OldProp"] = 123;
            DynamicViewDataDictionary dvd = new DynamicViewDataDictionary(() => vd);

            vd["NewProp"] = "somevalue";

            // Act
            var result = dvd.GetDynamicMemberNames();

            // Assert
            Assert.Equal(new[] { "NewProp", "OldProp" }, result.OrderBy(s => s).ToArray());
        }
        public void Set_OnExistingProperty_OverridesValue()
        {
            // Arrange
            ViewDataDictionary vd = new ViewDataDictionary()
            {
                { "Prop", "Value" }
            };
            dynamic dynamicVD = new DynamicViewDataDictionary(() => vd);

            // Act
            dynamicVD.Prop = "NewValue";

            // Assert
            Assert.Equal("NewValue", dynamicVD.Prop);
            Assert.Equal("NewValue", vd["Prop"]);
        }
        public void GetDynamicMemberNames_ReflectsChangesToDynamicObject()
        {
            // Arrange
            ViewDataDictionary vd = new ViewDataDictionary();

            vd["OldProp"] = 123;
            DynamicViewDataDictionary dvd = new DynamicViewDataDictionary(() => vd);

            ((dynamic)dvd).NewProp = "foo";

            // Act
            var result = dvd.GetDynamicMemberNames();

            // Assert
            Assert.Equal(new[] { "NewProp", "OldProp" }, result.OrderBy(s => s).ToArray());
        }
Example #16
0
        public void TryGetMember_OnExistingProperty_ReturnsValueAndSucceeds()
        {
            // Arrange
            object             result = null;
            ViewDataDictionary vd     = new ViewDataDictionary()
            {
                { "Prop", "Value" }
            };
            DynamicViewDataDictionary dynamicVD  = new DynamicViewDataDictionary(() => vd);
            Mock <GetMemberBinder>    binderMock = new Mock <GetMemberBinder>("Prop", /* ignoreCase */ false);

            // Act
            bool success = dynamicVD.TryGetMember(binderMock.Object, out result);

            // Assert
            Assert.IsTrue(success);
            Assert.AreEqual("Value", result);
        }
        public void GetDynamicMemberNames_ReturnsEmptyListForEmptyViewDataDictionary()
        {
            // Arrange
            ViewDataDictionary vd = new ViewDataDictionary();
            DynamicViewDataDictionary dvd = new DynamicViewDataDictionary(() => vd);

            // Act
            IEnumerable<string> result = dvd.GetDynamicMemberNames();

            // Assert
            Assert.Empty(result);
        }
        public void GetDynamicMemberNames_ReflectsChangesToUnderlyingViewDataDictionary()
        {
            // Arrange
            ViewDataDictionary vd = new ViewDataDictionary();
            vd["OldProp"] = 123;
            DynamicViewDataDictionary dvd = new DynamicViewDataDictionary(() => vd);
            vd["NewProp"] = "somevalue";

            // Act
            var result = dvd.GetDynamicMemberNames();

            // Assert
            Assert.Equal(new[] { "NewProp", "OldProp" }, result.OrderBy(s => s).ToArray());
        }
        public void TryGetMember_OnNonExistentProperty_ReturnsNullAndSucceeds()
        {
            // Arrange
            object result = null;
            ViewDataDictionary vd = new ViewDataDictionary();
            DynamicViewDataDictionary dynamicVD = new DynamicViewDataDictionary(() => vd);
            Mock<GetMemberBinder> binderMock = new Mock<GetMemberBinder>("Prop", /* ignoreCase */ false);

            // Act
            bool success = dynamicVD.TryGetMember(binderMock.Object, out result);

            // Assert
            Assert.True(success);
            Assert.Null(result);
        }
        public void GetDynamicMemberNames_ReflectsChangesToDynamicObject() {
            // Arrange
            ViewDataDictionary vd = new ViewDataDictionary();
            vd["OldProp"] = 123;
            DynamicViewDataDictionary dvd = new DynamicViewDataDictionary(() => vd);
            ((dynamic)dvd).NewProp = "foo";

            // Act
            var result = dvd.GetDynamicMemberNames();

            // Assert
            CollectionAssert.AreEqual(new[] { "NewProp", "OldProp" }, result.OrderBy(s => s).ToList());
        }
        public void GetDynamicMemberNames_ReturnsKeyNamesForFilledViewDataDictionary() {
            // Arrange
            ViewDataDictionary vd = new ViewDataDictionary() {
                { "Prop1", 1 },
                { "Prop2", 2 }
            };
            DynamicViewDataDictionary dvd = new DynamicViewDataDictionary(() => vd);

            // Act
            var result = dvd.GetDynamicMemberNames();

            // Assert
            CollectionAssert.AreEqual(new[] { "Prop1", "Prop2" }, result.OrderBy(s => s).ToList());
        }
        public void GetDynamicMemberNames_ReturnsEmptyListForEmptyViewDataDictionary() {
            // Arrange
            ViewDataDictionary vd = new ViewDataDictionary();
            DynamicViewDataDictionary dvd = new DynamicViewDataDictionary(() => vd);

            // Act
            var result = dvd.GetDynamicMemberNames();

            // Assert
            Assert.AreEqual(0, result.Count());
        }
        public void TrySetMember_OnNonExistentProperty_SetsValueAndSucceeds() {
            // Arrange
            ViewDataDictionary vd = new ViewDataDictionary();
            DynamicViewDataDictionary dynamicVD = new DynamicViewDataDictionary(() => vd);
            Mock<SetMemberBinder> binderMock = new Mock<SetMemberBinder>("Prop", /* ignoreCase */ false);

            // Act
            bool success = dynamicVD.TrySetMember(binderMock.Object, "NewValue");

            // Assert
            Assert.IsTrue(success);
            Assert.AreEqual("NewValue", ((dynamic)dynamicVD).Prop);
            Assert.AreEqual("NewValue", vd["Prop"]);
        }
Example #24
0
 protected virtual void SetViewBag(DynamicViewDataDictionary viewBag)
 {
     _viewBag = viewBag;
 }