Esempio n. 1
0
        public void ShouldRaiseIfVariableNameAlreadyExists()
        {
            IClass baseClass = new BaseClass();

            baseClass.AddVariable("a");
            baseClass.AddVariable("a");
        }
Esempio n. 2
0
        public void ShouldCreateInstanceWithVariables()
        {
            IClass baseClass = new BaseClass();

            baseClass.AddVariable("a");
            baseClass.AddVariable("b");

            IObject instance = baseClass.CreateInstance();

            Assert.IsNotNull(instance);
            Assert.AreEqual(baseClass, instance.Behavior);
            Assert.AreEqual(2, instance.Size);
            Assert.IsNull(instance.GetValueAt(0));
            Assert.IsNull(instance.GetValueAt(1));
        }
Esempio n. 3
0
        public void ShouldAddVariableNames()
        {
            IClass baseClass = new BaseClass();

            baseClass.AddVariable("a");
            baseClass.AddVariable("b");

            Assert.AreEqual(2, baseClass.InstanceSize);

            Assert.IsTrue(baseClass.InstanceVariableNames.Contains("a"));
            Assert.IsTrue(baseClass.InstanceVariableNames.Contains("b"));

            Assert.AreEqual(0, baseClass.GetInstanceVariableOffset("a"));
            Assert.AreEqual(1, baseClass.GetInstanceVariableOffset("b"));
        }
Esempio n. 4
0
        public void ShouldDefineSubclassWithVariables()
        {
            IClass baseClass = new BaseClass();

            baseClass.AddVariable("a");

            IClass subClass = (IClass)baseClass.CreateDelegated();

            subClass.AddVariable("b");

            Assert.AreEqual(1, baseClass.InstanceSize);
            Assert.AreEqual(2, subClass.InstanceSize);
            Assert.AreEqual(0, baseClass.GetInstanceVariableOffset("a"));
            Assert.AreEqual(-1, subClass.GetInstanceVariableOffset("a"));
            Assert.AreEqual(1, subClass.GetInstanceVariableOffset("b"));
        }
Esempio n. 5
0
        public void ShouldCreateSubclassInstanceWithVariables()
        {
            IClass baseClass = new BaseClass();

            baseClass.AddVariable("a");

            IClass subClass = (IClass)baseClass.CreateDelegated();

            subClass.AddVariable("b");

            IObject instance = subClass.CreateInstance();

            Assert.IsNotNull(instance);
            Assert.AreEqual(2, instance.Size);
            Assert.IsNull(instance.GetValueAt(0));
            Assert.IsNull(instance.GetValueAt(1));
        }
Esempio n. 6
0
        public void ShouldRaiseIfNameIsNullWhenAddVariable()
        {
            IClass baseClass = new BaseClass();

            baseClass.AddVariable(null);
        }