public void GetDefineString() { Machine machine = new Machine(); IMetaClass meta = BaseMetaClass.CreateMetaClass(null, machine); BaseClass bclass = new BaseClass(meta, "Class", null, machine, string.Empty); bclass.DefineInstanceVariable("x"); bclass.DefineInstanceVariable("y"); string definition = bclass.ToDefineString(); Assert.IsNotNull(definition); Assert.IsTrue(definition.Contains("subclass: #Class")); Assert.IsTrue(definition.Contains("instanceVariableNames: 'x y'")); Assert.IsTrue(definition.Contains("classVariableNames: ''")); Assert.IsTrue(definition.Contains("poolDictionaries: ''")); Assert.IsTrue(definition.Contains("category: ''")); }
public void DefineInstanceVariables() { Machine machine = new Machine(); BaseClass bclass = new BaseClass("Class", machine); bclass.DefineInstanceVariable("x"); bclass.DefineInstanceVariable("y"); Assert.AreEqual(2, bclass.NoInstanceVariables); Assert.AreEqual(0, bclass.GetInstanceVariableOffset("x")); Assert.AreEqual(1, bclass.GetInstanceVariableOffset("y")); Assert.AreEqual(-1, bclass.GetInstanceVariableOffset("z")); Assert.AreEqual("x y", bclass.GetInstanceVariableNamesAsString()); Assert.AreEqual(string.Empty, bclass.GetClassVariableNamesAsString()); Assert.AreEqual(null, bclass.GetClassVariableNames()); var result = bclass.GetInstanceVariableNames(); Assert.IsNotNull(result); Assert.AreEqual(2, result.Count); Assert.AreEqual("x", result.ElementAt(0)); Assert.AreEqual("y", result.ElementAt(1)); }