PageRenderTime 25ms CodeModel.GetById 0ms RepoModel.GetById 0ms app.codeStats 0ms

/trunk/Examples/test-suite/d/allprotected_runme.2.d

#
D | 63 lines | 48 code | 15 blank | 0 comment | 6 complexity | 2ca7e5070b15c8e96555e3ffe1c05977 MD5 | raw file
Possible License(s): LGPL-2.1, Cube, GPL-3.0, 0BSD, GPL-2.0
  1. module allprotected_runme;
  2. import allprotected.Klass;
  3. import allprotected.ProtectedBase;
  4. import std.conv : text;
  5. import std.exception : enforce;
  6. void main() {
  7. auto mpb = new MyProtectedBase("MyProtectedBase");
  8. mpb.accessProtected();
  9. }
  10. class MyProtectedBase : ProtectedBase {
  11. public:
  12. this(string name) {
  13. super(name);
  14. }
  15. void accessProtected() {
  16. string s = virtualMethod();
  17. enforce(s == "ProtectedBase", "Failed, got '" ~ s ~ "'");
  18. Klass k;
  19. void expect(string name) {
  20. auto kName = k.getName();
  21. enforce(kName == name, "Failed, expected '" ~ name ~ "' instead of '" ~
  22. kName ~ "'.");
  23. }
  24. k = instanceMethod(new Klass("xyz"));
  25. expect("xyz");
  26. k = instanceOverloaded(new Klass("xyz"));
  27. expect("xyz");
  28. k = instanceOverloaded(new Klass("xyz"), "abc");
  29. expect("abc");
  30. k = staticMethod(new Klass("abc"));
  31. expect("abc");
  32. k = staticOverloaded(new Klass("xyz"));
  33. expect("xyz");
  34. k = staticOverloaded(new Klass("xyz"), "abc");
  35. expect("abc");
  36. instanceMemberVariable = 30;
  37. int i = instanceMemberVariable;
  38. enforce(i == 30, text("Failed, expected ", 30, "instead of ", i));
  39. staticMemberVariable = 40;
  40. i = staticMemberVariable;
  41. enforce(i == 40, text("Failed, expected ", 40, "instead of ", i));
  42. i = staticConstMemberVariable;
  43. enforce(i == 20, text("Failed, expected ", 20, "instead of ", i));
  44. anEnum = ProtectedBase.AnEnum.EnumVal1;
  45. ProtectedBase.AnEnum ae = anEnum;
  46. enforce(ae == ProtectedBase.AnEnum.EnumVal1);
  47. }
  48. }