diff options
Diffstat (limited to 'Examples/test-suite/d/li_attribute_runme.1.d')
-rw-r--r-- | Examples/test-suite/d/li_attribute_runme.1.d | 75 |
1 files changed, 75 insertions, 0 deletions
diff --git a/Examples/test-suite/d/li_attribute_runme.1.d b/Examples/test-suite/d/li_attribute_runme.1.d new file mode 100644 index 000000000..ada3ed8d8 --- /dev/null +++ b/Examples/test-suite/d/li_attribute_runme.1.d @@ -0,0 +1,75 @@ +module li_attribute_runme; + +import li_attribute.A; +import li_attribute.B; +import li_attribute.MyClass; +import li_attribute.MyClassVal; +import li_attribute.MyStringyClass; +import li_attribute.MyFoo; +import li_attribute.Param_i; + +void main() { + auto aa = new A(1,2,3); + + if (aa.a != 1) + throw new Exception("error"); + aa.a = 3; + if (aa.a != 3) + throw new Exception("error"); + + if (aa.b != 2) + throw new Exception("error"); + aa.b = 5; + if (aa.b != 5) + throw new Exception("error"); + + if (aa.d != aa.b) + throw new Exception("error"); + + if (aa.c != 3) + throw new Exception("error"); + + auto pi = new Param_i(7); + if (pi.value != 7) + throw new Exception("error"); + + pi.value=3; + if (pi.value != 3) + throw new Exception("error"); + + auto b = new B(aa); + if (b.a.c != 3) + throw new Exception("error"); + + // class/struct attribute with get/set methods using return/pass by reference + auto myFoo = new MyFoo(); + myFoo.x = 8; + auto myClass = new MyClass(); + myClass.Foo = myFoo; + if (myClass.Foo.x != 8) + throw new Exception("error"); + + // class/struct attribute with get/set methods using return/pass by value + auto myClassVal = new MyClassVal(); + if (myClassVal.ReadWriteFoo.x != -1) + throw new Exception("error"); + if (myClassVal.ReadOnlyFoo.x != -1) + throw new Exception("error"); + myClassVal.ReadWriteFoo = myFoo; + if (myClassVal.ReadWriteFoo.x != 8) + throw new Exception("error"); + if (myClassVal.ReadOnlyFoo.x != 8) + throw new Exception("error"); + + // string attribute with get/set methods using return/pass by value + auto myStringClass = new MyStringyClass("initial string"); + if (myStringClass.ReadWriteString != "initial string") + throw new Exception("error"); + if (myStringClass.ReadOnlyString != "initial string") + throw new Exception("error"); + myStringClass.ReadWriteString = "changed string"; + if (myStringClass.ReadWriteString != "changed string") + throw new Exception("error"); + if (myStringClass.ReadOnlyString != "changed string") + throw new Exception("error"); +} |