git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk@12858 626c5289-ae23-0410-ae9c-e8d60b6d4f22
63 lines
1.5 KiB
D
63 lines
1.5 KiB
D
module allprotected_runme;
|
|
|
|
import allprotected.Klass;
|
|
import allprotected.ProtectedBase;
|
|
import std.conv : text;
|
|
import std.exception : enforce;
|
|
|
|
void main() {
|
|
auto mpb = new MyProtectedBase("MyProtectedBase");
|
|
mpb.accessProtected();
|
|
}
|
|
|
|
class MyProtectedBase : ProtectedBase {
|
|
public:
|
|
this(string name) {
|
|
super(name);
|
|
}
|
|
|
|
void accessProtected() {
|
|
string s = virtualMethod();
|
|
enforce(s == "ProtectedBase", "Failed, got '" ~ s ~ "'");
|
|
|
|
Klass k;
|
|
void expect(string name) {
|
|
auto kName = k.getName();
|
|
enforce(kName == name, "Failed, expected '" ~ name ~ "' instead of '" ~
|
|
kName ~ "'.");
|
|
}
|
|
|
|
k = instanceMethod(new Klass("xyz"));
|
|
expect("xyz");
|
|
|
|
k = instanceOverloaded(new Klass("xyz"));
|
|
expect("xyz");
|
|
|
|
k = instanceOverloaded(new Klass("xyz"), "abc");
|
|
expect("abc");
|
|
|
|
k = staticMethod(new Klass("abc"));
|
|
expect("abc");
|
|
|
|
k = staticOverloaded(new Klass("xyz"));
|
|
expect("xyz");
|
|
|
|
k = staticOverloaded(new Klass("xyz"), "abc");
|
|
expect("abc");
|
|
|
|
instanceMemberVariable = 30;
|
|
int i = instanceMemberVariable;
|
|
enforce(i == 30, text("Failed, expected ", 30, "instead of ", i));
|
|
|
|
staticMemberVariable = 40;
|
|
i = staticMemberVariable;
|
|
enforce(i == 40, text("Failed, expected ", 40, "instead of ", i));
|
|
|
|
i = staticConstMemberVariable;
|
|
enforce(i == 20, text("Failed, expected ", 20, "instead of ", i));
|
|
|
|
anEnum = ProtectedBase.AnEnum.EnumVal1;
|
|
ProtectedBase.AnEnum ae = anEnum;
|
|
enforce(ae == ProtectedBase.AnEnum.EnumVal1);
|
|
}
|
|
}
|