diff tests/mini/interface8.d @ 807:d92acb81a583

Add interface minitest, rework s.d.
author Christian Kamm <kamm incasoftware de>
date Sun, 30 Nov 2008 11:54:18 +0100
parents
children
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/mini/interface8.d	Sun Nov 30 11:54:18 2008 +0100
@@ -0,0 +1,59 @@
+interface InputStream
+{
+  void foo();
+}
+
+interface OutputStream
+{
+  void bar();
+}
+
+interface IConduit : InputStream, OutputStream
+{
+  abstract uint bufferSize();
+}
+
+class Conduit : IConduit
+{
+  abstract uint bufferSize();
+  abstract void foo();
+  abstract void bar();
+}
+
+interface Selectable
+{
+  void car();
+}
+
+class DeviceConduit : Conduit, Selectable
+{
+        override uint bufferSize ()
+        {
+                return 1024 * 16;
+        }
+  override void foo() {}
+  override void bar() {}
+  override void car() {}
+  int handle;
+}
+
+class ConsoleConduit : DeviceConduit
+{
+  override void foo() {}
+  bool redirected;
+}
+
+class OtherConduit : Conduit
+{
+  abstract uint bufferSize();
+  override void foo() {}
+  override void bar() {}
+}
+
+void main()
+{
+  auto c = new ConsoleConduit;
+  IConduit ci = c;
+  assert(c.bufferSize == ci.bufferSize);
+}
+