annotate 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
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
807
d92acb81a583 Add interface minitest, rework s.d.
Christian Kamm <kamm incasoftware de>
parents:
diff changeset
1 interface InputStream
d92acb81a583 Add interface minitest, rework s.d.
Christian Kamm <kamm incasoftware de>
parents:
diff changeset
2 {
d92acb81a583 Add interface minitest, rework s.d.
Christian Kamm <kamm incasoftware de>
parents:
diff changeset
3 void foo();
d92acb81a583 Add interface minitest, rework s.d.
Christian Kamm <kamm incasoftware de>
parents:
diff changeset
4 }
d92acb81a583 Add interface minitest, rework s.d.
Christian Kamm <kamm incasoftware de>
parents:
diff changeset
5
d92acb81a583 Add interface minitest, rework s.d.
Christian Kamm <kamm incasoftware de>
parents:
diff changeset
6 interface OutputStream
d92acb81a583 Add interface minitest, rework s.d.
Christian Kamm <kamm incasoftware de>
parents:
diff changeset
7 {
d92acb81a583 Add interface minitest, rework s.d.
Christian Kamm <kamm incasoftware de>
parents:
diff changeset
8 void bar();
d92acb81a583 Add interface minitest, rework s.d.
Christian Kamm <kamm incasoftware de>
parents:
diff changeset
9 }
d92acb81a583 Add interface minitest, rework s.d.
Christian Kamm <kamm incasoftware de>
parents:
diff changeset
10
d92acb81a583 Add interface minitest, rework s.d.
Christian Kamm <kamm incasoftware de>
parents:
diff changeset
11 interface IConduit : InputStream, OutputStream
d92acb81a583 Add interface minitest, rework s.d.
Christian Kamm <kamm incasoftware de>
parents:
diff changeset
12 {
d92acb81a583 Add interface minitest, rework s.d.
Christian Kamm <kamm incasoftware de>
parents:
diff changeset
13 abstract uint bufferSize();
d92acb81a583 Add interface minitest, rework s.d.
Christian Kamm <kamm incasoftware de>
parents:
diff changeset
14 }
d92acb81a583 Add interface minitest, rework s.d.
Christian Kamm <kamm incasoftware de>
parents:
diff changeset
15
d92acb81a583 Add interface minitest, rework s.d.
Christian Kamm <kamm incasoftware de>
parents:
diff changeset
16 class Conduit : IConduit
d92acb81a583 Add interface minitest, rework s.d.
Christian Kamm <kamm incasoftware de>
parents:
diff changeset
17 {
d92acb81a583 Add interface minitest, rework s.d.
Christian Kamm <kamm incasoftware de>
parents:
diff changeset
18 abstract uint bufferSize();
d92acb81a583 Add interface minitest, rework s.d.
Christian Kamm <kamm incasoftware de>
parents:
diff changeset
19 abstract void foo();
d92acb81a583 Add interface minitest, rework s.d.
Christian Kamm <kamm incasoftware de>
parents:
diff changeset
20 abstract void bar();
d92acb81a583 Add interface minitest, rework s.d.
Christian Kamm <kamm incasoftware de>
parents:
diff changeset
21 }
d92acb81a583 Add interface minitest, rework s.d.
Christian Kamm <kamm incasoftware de>
parents:
diff changeset
22
d92acb81a583 Add interface minitest, rework s.d.
Christian Kamm <kamm incasoftware de>
parents:
diff changeset
23 interface Selectable
d92acb81a583 Add interface minitest, rework s.d.
Christian Kamm <kamm incasoftware de>
parents:
diff changeset
24 {
d92acb81a583 Add interface minitest, rework s.d.
Christian Kamm <kamm incasoftware de>
parents:
diff changeset
25 void car();
d92acb81a583 Add interface minitest, rework s.d.
Christian Kamm <kamm incasoftware de>
parents:
diff changeset
26 }
d92acb81a583 Add interface minitest, rework s.d.
Christian Kamm <kamm incasoftware de>
parents:
diff changeset
27
d92acb81a583 Add interface minitest, rework s.d.
Christian Kamm <kamm incasoftware de>
parents:
diff changeset
28 class DeviceConduit : Conduit, Selectable
d92acb81a583 Add interface minitest, rework s.d.
Christian Kamm <kamm incasoftware de>
parents:
diff changeset
29 {
d92acb81a583 Add interface minitest, rework s.d.
Christian Kamm <kamm incasoftware de>
parents:
diff changeset
30 override uint bufferSize ()
d92acb81a583 Add interface minitest, rework s.d.
Christian Kamm <kamm incasoftware de>
parents:
diff changeset
31 {
d92acb81a583 Add interface minitest, rework s.d.
Christian Kamm <kamm incasoftware de>
parents:
diff changeset
32 return 1024 * 16;
d92acb81a583 Add interface minitest, rework s.d.
Christian Kamm <kamm incasoftware de>
parents:
diff changeset
33 }
d92acb81a583 Add interface minitest, rework s.d.
Christian Kamm <kamm incasoftware de>
parents:
diff changeset
34 override void foo() {}
d92acb81a583 Add interface minitest, rework s.d.
Christian Kamm <kamm incasoftware de>
parents:
diff changeset
35 override void bar() {}
d92acb81a583 Add interface minitest, rework s.d.
Christian Kamm <kamm incasoftware de>
parents:
diff changeset
36 override void car() {}
d92acb81a583 Add interface minitest, rework s.d.
Christian Kamm <kamm incasoftware de>
parents:
diff changeset
37 int handle;
d92acb81a583 Add interface minitest, rework s.d.
Christian Kamm <kamm incasoftware de>
parents:
diff changeset
38 }
d92acb81a583 Add interface minitest, rework s.d.
Christian Kamm <kamm incasoftware de>
parents:
diff changeset
39
d92acb81a583 Add interface minitest, rework s.d.
Christian Kamm <kamm incasoftware de>
parents:
diff changeset
40 class ConsoleConduit : DeviceConduit
d92acb81a583 Add interface minitest, rework s.d.
Christian Kamm <kamm incasoftware de>
parents:
diff changeset
41 {
d92acb81a583 Add interface minitest, rework s.d.
Christian Kamm <kamm incasoftware de>
parents:
diff changeset
42 override void foo() {}
d92acb81a583 Add interface minitest, rework s.d.
Christian Kamm <kamm incasoftware de>
parents:
diff changeset
43 bool redirected;
d92acb81a583 Add interface minitest, rework s.d.
Christian Kamm <kamm incasoftware de>
parents:
diff changeset
44 }
d92acb81a583 Add interface minitest, rework s.d.
Christian Kamm <kamm incasoftware de>
parents:
diff changeset
45
d92acb81a583 Add interface minitest, rework s.d.
Christian Kamm <kamm incasoftware de>
parents:
diff changeset
46 class OtherConduit : Conduit
d92acb81a583 Add interface minitest, rework s.d.
Christian Kamm <kamm incasoftware de>
parents:
diff changeset
47 {
d92acb81a583 Add interface minitest, rework s.d.
Christian Kamm <kamm incasoftware de>
parents:
diff changeset
48 abstract uint bufferSize();
d92acb81a583 Add interface minitest, rework s.d.
Christian Kamm <kamm incasoftware de>
parents:
diff changeset
49 override void foo() {}
d92acb81a583 Add interface minitest, rework s.d.
Christian Kamm <kamm incasoftware de>
parents:
diff changeset
50 override void bar() {}
d92acb81a583 Add interface minitest, rework s.d.
Christian Kamm <kamm incasoftware de>
parents:
diff changeset
51 }
d92acb81a583 Add interface minitest, rework s.d.
Christian Kamm <kamm incasoftware de>
parents:
diff changeset
52
d92acb81a583 Add interface minitest, rework s.d.
Christian Kamm <kamm incasoftware de>
parents:
diff changeset
53 void main()
d92acb81a583 Add interface minitest, rework s.d.
Christian Kamm <kamm incasoftware de>
parents:
diff changeset
54 {
d92acb81a583 Add interface minitest, rework s.d.
Christian Kamm <kamm incasoftware de>
parents:
diff changeset
55 auto c = new ConsoleConduit;
d92acb81a583 Add interface minitest, rework s.d.
Christian Kamm <kamm incasoftware de>
parents:
diff changeset
56 IConduit ci = c;
d92acb81a583 Add interface minitest, rework s.d.
Christian Kamm <kamm incasoftware de>
parents:
diff changeset
57 assert(c.bufferSize == ci.bufferSize);
d92acb81a583 Add interface minitest, rework s.d.
Christian Kamm <kamm incasoftware de>
parents:
diff changeset
58 }
d92acb81a583 Add interface minitest, rework s.d.
Christian Kamm <kamm incasoftware de>
parents:
diff changeset
59