public void DefaultArgumentsArePassedCorrectly()
        {
            var     dummy        = new DummyClass();
            dynamic dynStructure = new DynamicContextWrapper(dummy);

            dynStructure.Установить("привет");

            Assert.True(dummy.Answer);
        }
        public void WrapStructureMethodsCall()
        {
            var     structure    = new StructureImpl();
            dynamic dynStructure = new DynamicContextWrapper(structure);

            dynStructure.Вставить("Свойство1", 1);
            dynStructure.Вставить("Свойство2", "Hello");

            Assert.Equal <int>(1, (int)dynStructure["Свойство1"]);
            Assert.Equal("Hello", dynStructure["Свойство2"]);
        }
        public void WrapStructureIndices()
        {
            var structure = new StructureImpl("Свойство1,Свойство2",
                                              ValueFactory.Create(1),
                                              ValueFactory.Create("Hello"));

            dynamic dynStructure = new DynamicContextWrapper(structure);

            Assert.Equal <int>(1, (int)dynStructure["Свойство1"]);
            Assert.Equal("Hello", dynStructure["Свойство2"]);
        }
        public void WrapStructureIndices()
        {
            lock (TestOrderingLock.Lock)
            {
                var se = new MinimalTypeSystemHack();

                var structure = new StructureImpl("Свойство1,Свойство2",
                                                  ValueFactory.Create(1),
                                                  ValueFactory.Create("Hello"));

                dynamic dynStructure = new DynamicContextWrapper(structure);
                Assert.Equal <int>(1, (int)dynStructure["Свойство1"]);
                Assert.Equal <string>("Hello", dynStructure["Свойство2"]);
            }
        }
        public void WrapStructureMethodsCall()
        {
            lock (TestOrderingLock.Lock)
            {
                var se = new MinimalTypeSystemHack();

                var     structure    = new StructureImpl();
                dynamic dynStructure = new DynamicContextWrapper(structure);

                dynStructure.Вставить("Свойство1", 1);
                dynStructure.Вставить("Свойство2", "Hello");

                Assert.Equal <int>(1, (int)dynStructure["Свойство1"]);
                Assert.Equal <string>("Hello", dynStructure["Свойство2"]);
            }
        }
        public void WrapStructureEnumeration()
        {
            var     structure    = new StructureImpl();
            dynamic dynStructure = new DynamicContextWrapper(structure);

            dynStructure.Вставить("Свойство1", 1);
            dynStructure.Вставить("Свойство2", "Hello");

            int cnt = 0;

            foreach (var kv in dynStructure)
            {
                ++cnt;
                Assert.IsType <DynamicContextWrapper>(kv);
            }

            Assert.Equal(2, cnt);
        }
        public void WrapStructureEnumeration()
        {
            lock (TestOrderingLock.Lock)
            {
                var se = new MinimalTypeSystemHack();

                var     structure    = new StructureImpl();
                dynamic dynStructure = new DynamicContextWrapper(structure);

                dynStructure.Вставить("Свойство1", 1);
                dynStructure.Вставить("Свойство2", "Hello");

                int cnt = 0;
                foreach (var kv in dynStructure)
                {
                    ++cnt;
                    Assert.IsType(typeof(DynamicContextWrapper), kv);
                }

                Assert.Equal(2, cnt);
            }
        }