1 // **********************************************************************
3 // Copyright (c) 2003-2011 ZeroC, Inc. All rights reserved.
5 // This copy of Ice is licensed to you under the terms described in the
6 // ICE_LICENSE file included in this distribution.
8 // **********************************************************************
10 package test
.Ice
.slicing
.exceptions
;
12 import test
.Ice
.slicing
.exceptions
.Test
.Callback_TestIntf_baseAsBase
;
13 import test
.Ice
.slicing
.exceptions
.Test
.Callback_TestIntf_knownDerivedAsBase
;
14 import test
.Ice
.slicing
.exceptions
.Test
.Callback_TestIntf_knownDerivedAsKnownDerived
;
15 import test
.Ice
.slicing
.exceptions
.Test
.Callback_TestIntf_knownIntermediateAsBase
;
16 import test
.Ice
.slicing
.exceptions
.Test
.Callback_TestIntf_knownIntermediateAsKnownIntermediate
;
17 import test
.Ice
.slicing
.exceptions
.Test
.Callback_TestIntf_knownMostDerivedAsBase
;
18 import test
.Ice
.slicing
.exceptions
.Test
.Callback_TestIntf_knownMostDerivedAsKnownIntermediate
;
19 import test
.Ice
.slicing
.exceptions
.Test
.Callback_TestIntf_knownMostDerivedAsKnownMostDerived
;
20 import test
.Ice
.slicing
.exceptions
.Test
.Callback_TestIntf_unknownDerivedAsBase
;
21 import test
.Ice
.slicing
.exceptions
.Test
.Callback_TestIntf_unknownIntermediateAsBase
;
22 import test
.Ice
.slicing
.exceptions
.Test
.Callback_TestIntf_unknownMostDerived1AsBase
;
23 import test
.Ice
.slicing
.exceptions
.Test
.Callback_TestIntf_unknownMostDerived1AsKnownIntermediate
;
24 import test
.Ice
.slicing
.exceptions
.Test
.Callback_TestIntf_unknownMostDerived2AsBase
;
25 import test
.Ice
.slicing
.exceptions
.Test
.Base
;
26 import test
.Ice
.slicing
.exceptions
.Test
.KnownDerived
;
27 import test
.Ice
.slicing
.exceptions
.Test
.KnownIntermediate
;
28 import test
.Ice
.slicing
.exceptions
.Test
.KnownMostDerived
;
29 import test
.Ice
.slicing
.exceptions
.Test
.TestIntfPrx
;
30 import test
.Ice
.slicing
.exceptions
.Test
.TestIntfPrxHelper
;
39 throw new RuntimeException();
43 private static class Callback
50 public synchronized void
59 catch(InterruptedException ex
)
67 public synchronized void
75 private boolean _called
;
78 private static class Callback_TestIntf_baseAsBaseI
extends Callback_TestIntf_baseAsBase
87 exception(Ice
.LocalException exc
)
93 exception(Ice
.UserException exc
)
101 test(b
.b
.equals("Base.b"));
102 test(b
.ice_name().equals("Test::Base"));
117 private Callback callback
= new Callback();
120 private static class Callback_TestIntf_unknownDerivedAsBaseI
extends Callback_TestIntf_unknownDerivedAsBase
129 exception(Ice
.LocalException exc
)
135 exception(Ice
.UserException exc
)
143 test(b
.b
.equals("UnknownDerived.b"));
144 test(b
.ice_name().equals("Test::Base"));
159 private Callback callback
= new Callback();
162 private static class Callback_TestIntf_knownDerivedAsBaseI
extends Callback_TestIntf_knownDerivedAsBase
171 exception(Ice
.LocalException exc
)
177 exception(Ice
.UserException exc
)
183 catch(KnownDerived k
)
185 test(k
.b
.equals("KnownDerived.b"));
186 test(k
.kd
.equals("KnownDerived.kd"));
187 test(k
.ice_name().equals("Test::KnownDerived"));
202 private Callback callback
= new Callback();
205 private static class Callback_TestIntf_knownDerivedAsKnownDerivedI
206 extends Callback_TestIntf_knownDerivedAsKnownDerived
215 exception(Ice
.LocalException exc
)
221 exception(Ice
.UserException exc
)
227 catch(KnownDerived k
)
229 test(k
.b
.equals("KnownDerived.b"));
230 test(k
.kd
.equals("KnownDerived.kd"));
231 test(k
.ice_name().equals("Test::KnownDerived"));
246 private Callback callback
= new Callback();
249 private static class Callback_TestIntf_unknownIntermediateAsBaseI
250 extends Callback_TestIntf_unknownIntermediateAsBase
259 exception(Ice
.LocalException exc
)
265 exception(Ice
.UserException exc
)
273 test(b
.b
.equals("UnknownIntermediate.b"));
274 test(b
.ice_name().equals("Test::Base"));
289 private Callback callback
= new Callback();
292 private static class Callback_TestIntf_knownIntermediateAsBaseI
extends Callback_TestIntf_knownIntermediateAsBase
301 exception(Ice
.LocalException exc
)
307 exception(Ice
.UserException exc
)
313 catch(KnownIntermediate ki
)
315 test(ki
.b
.equals("KnownIntermediate.b"));
316 test(ki
.ki
.equals("KnownIntermediate.ki"));
317 test(ki
.ice_name().equals("Test::KnownIntermediate"));
332 private Callback callback
= new Callback();
335 private static class Callback_TestIntf_knownMostDerivedAsBaseI
extends Callback_TestIntf_knownMostDerivedAsBase
344 exception(Ice
.LocalException exc
)
350 exception(Ice
.UserException exc
)
356 catch(KnownMostDerived kmd
)
358 test(kmd
.b
.equals("KnownMostDerived.b"));
359 test(kmd
.ki
.equals("KnownMostDerived.ki"));
360 test(kmd
.kmd
.equals("KnownMostDerived.kmd"));
361 test(kmd
.ice_name().equals("Test::KnownMostDerived"));
376 private Callback callback
= new Callback();
379 private static class Callback_TestIntf_knownIntermediateAsKnownIntermediateI
380 extends Callback_TestIntf_knownIntermediateAsKnownIntermediate
389 exception(Ice
.LocalException exc
)
395 exception(Ice
.UserException exc
)
401 catch(KnownIntermediate ki
)
403 test(ki
.b
.equals("KnownIntermediate.b"));
404 test(ki
.ki
.equals("KnownIntermediate.ki"));
405 test(ki
.ice_name().equals("Test::KnownIntermediate"));
420 private Callback callback
= new Callback();
423 private static class Callback_TestIntf_knownMostDerivedAsKnownIntermediateI
424 extends Callback_TestIntf_knownMostDerivedAsKnownIntermediate
433 exception(Ice
.LocalException exc
)
439 exception(Ice
.UserException exc
)
445 catch(KnownMostDerived kmd
)
447 test(kmd
.b
.equals("KnownMostDerived.b"));
448 test(kmd
.ki
.equals("KnownMostDerived.ki"));
449 test(kmd
.kmd
.equals("KnownMostDerived.kmd"));
450 test(kmd
.ice_name().equals("Test::KnownMostDerived"));
465 private Callback callback
= new Callback();
468 private static class Callback_TestIntf_knownMostDerivedAsKnownMostDerivedI
469 extends Callback_TestIntf_knownMostDerivedAsKnownMostDerived
478 exception(Ice
.LocalException exc
)
484 exception(Ice
.UserException exc
)
490 catch(KnownMostDerived kmd
)
492 test(kmd
.b
.equals("KnownMostDerived.b"));
493 test(kmd
.ki
.equals("KnownMostDerived.ki"));
494 test(kmd
.kmd
.equals("KnownMostDerived.kmd"));
495 test(kmd
.ice_name().equals("Test::KnownMostDerived"));
510 private Callback callback
= new Callback();
513 private static class Callback_TestIntf_unknownMostDerived1AsBaseI
514 extends Callback_TestIntf_unknownMostDerived1AsBase
523 exception(Ice
.LocalException exc
)
529 exception(Ice
.UserException exc
)
535 catch(KnownIntermediate ki
)
537 test(ki
.b
.equals("UnknownMostDerived1.b"));
538 test(ki
.ki
.equals("UnknownMostDerived1.ki"));
539 test(ki
.ice_name().equals("Test::KnownIntermediate"));
554 private Callback callback
= new Callback();
557 private static class Callback_TestIntf_unknownMostDerived1AsKnownIntermediateI
558 extends Callback_TestIntf_unknownMostDerived1AsKnownIntermediate
567 exception(Ice
.LocalException exc
)
573 exception(Ice
.UserException exc
)
579 catch(KnownIntermediate ki
)
581 test(ki
.b
.equals("UnknownMostDerived1.b"));
582 test(ki
.ki
.equals("UnknownMostDerived1.ki"));
583 test(ki
.ice_name().equals("Test::KnownIntermediate"));
598 private Callback callback
= new Callback();
601 private static class Callback_TestIntf_unknownMostDerived2AsBaseI
602 extends Callback_TestIntf_unknownMostDerived2AsBase
611 exception(Ice
.LocalException exc
)
617 exception(Ice
.UserException exc
)
625 test(b
.b
.equals("UnknownMostDerived2.b"));
626 test(b
.ice_name().equals("Test::Base"));
641 private Callback callback
= new Callback();
644 public static TestIntfPrx
645 allTests(Ice
.Communicator communicator
, boolean collocated
, java
.io
.PrintWriter out
)
647 out
.print("testing stringToProxy... ");
649 String ref
= "Test:default -p 12010 -t 10000";
650 Ice
.ObjectPrx base
= communicator
.stringToProxy(ref
);
654 out
.print("testing checked cast... ");
656 TestIntfPrx test
= TestIntfPrxHelper
.checkedCast(base
);
658 test(test
.equals(base
));
661 out
.print("base... ");
671 test(b
.b
.equals("Base.b"));
672 test(b
.ice_name().equals("Test::Base"));
681 out
.print("base (AMI)... ");
684 Callback_TestIntf_baseAsBaseI cb
= new Callback_TestIntf_baseAsBaseI();
685 test
.begin_baseAsBase(cb
);
690 out
.print("slicing of unknown derived... ");
695 test
.unknownDerivedAsBase();
700 test(b
.b
.equals("UnknownDerived.b"));
701 test(b
.ice_name().equals("Test::Base"));
710 out
.print("slicing of unknown derived (AMI)... ");
713 Callback_TestIntf_unknownDerivedAsBaseI cb
= new Callback_TestIntf_unknownDerivedAsBaseI();
714 test
.begin_unknownDerivedAsBase(cb
);
719 out
.print("non-slicing of known derived as base... ");
724 test
.knownDerivedAsBase();
727 catch(KnownDerived k
)
729 test(k
.b
.equals("KnownDerived.b"));
730 test(k
.kd
.equals("KnownDerived.kd"));
731 test(k
.ice_name().equals("Test::KnownDerived"));
740 out
.print("non-slicing of known derived as base (AMI)... ");
743 Callback_TestIntf_knownDerivedAsBaseI cb
= new Callback_TestIntf_knownDerivedAsBaseI();
744 test
.begin_knownDerivedAsBase(cb
);
749 out
.print("non-slicing of known derived as derived... ");
754 test
.knownDerivedAsKnownDerived();
757 catch(KnownDerived k
)
759 test(k
.b
.equals("KnownDerived.b"));
760 test(k
.kd
.equals("KnownDerived.kd"));
761 test(k
.ice_name().equals("Test::KnownDerived"));
770 out
.print("non-slicing of known derived as derived (AMI)... ");
773 Callback_TestIntf_knownDerivedAsKnownDerivedI cb
= new Callback_TestIntf_knownDerivedAsKnownDerivedI();
774 test
.begin_knownDerivedAsKnownDerived(cb
);
779 out
.print("slicing of unknown intermediate as base... ");
784 test
.unknownIntermediateAsBase();
789 test(b
.b
.equals("UnknownIntermediate.b"));
790 test(b
.ice_name().equals("Test::Base"));
799 out
.print("slicing of unknown intermediate as base (AMI)... ");
802 Callback_TestIntf_unknownIntermediateAsBaseI cb
= new Callback_TestIntf_unknownIntermediateAsBaseI();
803 test
.begin_unknownIntermediateAsBase(cb
);
808 out
.print("slicing of known intermediate as base... ");
813 test
.knownIntermediateAsBase();
816 catch(KnownIntermediate ki
)
818 test(ki
.b
.equals("KnownIntermediate.b"));
819 test(ki
.ki
.equals("KnownIntermediate.ki"));
820 test(ki
.ice_name().equals("Test::KnownIntermediate"));
829 out
.print("slicing of known intermediate as base (AMI)... ");
832 Callback_TestIntf_knownIntermediateAsBaseI cb
= new Callback_TestIntf_knownIntermediateAsBaseI();
833 test
.begin_knownIntermediateAsBase(cb
);
838 out
.print("slicing of known most derived as base... ");
843 test
.knownMostDerivedAsBase();
846 catch(KnownMostDerived kmd
)
848 test(kmd
.b
.equals("KnownMostDerived.b"));
849 test(kmd
.ki
.equals("KnownMostDerived.ki"));
850 test(kmd
.kmd
.equals("KnownMostDerived.kmd"));
851 test(kmd
.ice_name().equals("Test::KnownMostDerived"));
860 out
.print("slicing of known most derived as base (AMI)... ");
863 Callback_TestIntf_knownMostDerivedAsBaseI cb
= new Callback_TestIntf_knownMostDerivedAsBaseI();
864 test
.begin_knownMostDerivedAsBase(cb
);
869 out
.print("non-slicing of known intermediate as intermediate... ");
874 test
.knownIntermediateAsKnownIntermediate();
877 catch(KnownIntermediate ki
)
879 test(ki
.b
.equals("KnownIntermediate.b"));
880 test(ki
.ki
.equals("KnownIntermediate.ki"));
881 test(ki
.ice_name().equals("Test::KnownIntermediate"));
890 out
.print("non-slicing of known intermediate as intermediate (AMI)... ");
893 Callback_TestIntf_knownIntermediateAsKnownIntermediateI cb
=
894 new Callback_TestIntf_knownIntermediateAsKnownIntermediateI();
895 test
.begin_knownIntermediateAsKnownIntermediate(cb
);
900 out
.print("non-slicing of known most derived as intermediate... ");
905 test
.knownMostDerivedAsKnownIntermediate();
908 catch(KnownMostDerived kmd
)
910 test(kmd
.b
.equals("KnownMostDerived.b"));
911 test(kmd
.ki
.equals("KnownMostDerived.ki"));
912 test(kmd
.kmd
.equals("KnownMostDerived.kmd"));
913 test(kmd
.ice_name().equals("Test::KnownMostDerived"));
922 out
.print("non-slicing of known most derived as intermediate (AMI)... ");
925 Callback_TestIntf_knownMostDerivedAsKnownIntermediateI cb
=
926 new Callback_TestIntf_knownMostDerivedAsKnownIntermediateI();
927 test
.begin_knownMostDerivedAsKnownIntermediate(cb
);
932 out
.print("non-slicing of known most derived as most derived... ");
937 test
.knownMostDerivedAsKnownMostDerived();
940 catch(KnownMostDerived kmd
)
942 test(kmd
.b
.equals("KnownMostDerived.b"));
943 test(kmd
.ki
.equals("KnownMostDerived.ki"));
944 test(kmd
.kmd
.equals("KnownMostDerived.kmd"));
945 test(kmd
.ice_name().equals("Test::KnownMostDerived"));
954 out
.print("non-slicing of known most derived as most derived (AMI)... ");
957 Callback_TestIntf_knownMostDerivedAsKnownMostDerivedI cb
=
958 new Callback_TestIntf_knownMostDerivedAsKnownMostDerivedI();
959 test
.begin_knownMostDerivedAsKnownMostDerived(cb
);
964 out
.print("slicing of unknown most derived, known intermediate as base... ");
969 test
.unknownMostDerived1AsBase();
972 catch(KnownIntermediate ki
)
974 test(ki
.b
.equals("UnknownMostDerived1.b"));
975 test(ki
.ki
.equals("UnknownMostDerived1.ki"));
976 test(ki
.ice_name().equals("Test::KnownIntermediate"));
985 out
.print("slicing of unknown most derived, known intermediate as base (AMI)... ");
988 Callback_TestIntf_unknownMostDerived1AsBaseI cb
= new Callback_TestIntf_unknownMostDerived1AsBaseI();
989 test
.begin_unknownMostDerived1AsBase(cb
);
994 out
.print("slicing of unknown most derived, known intermediate as intermediate... ");
999 test
.unknownMostDerived1AsKnownIntermediate();
1002 catch(KnownIntermediate ki
)
1004 test(ki
.b
.equals("UnknownMostDerived1.b"));
1005 test(ki
.ki
.equals("UnknownMostDerived1.ki"));
1006 test(ki
.ice_name().equals("Test::KnownIntermediate"));
1015 out
.print("slicing of unknown most derived, known intermediate as intermediate (AMI)... ");
1018 Callback_TestIntf_unknownMostDerived1AsKnownIntermediateI cb
=
1019 new Callback_TestIntf_unknownMostDerived1AsKnownIntermediateI();
1020 test
.begin_unknownMostDerived1AsKnownIntermediate(cb
);
1025 out
.print("slicing of unknown most derived, unknown intermediate thrown as base... ");
1030 test
.unknownMostDerived2AsBase();
1035 test(b
.b
.equals("UnknownMostDerived2.b"));
1036 test(b
.ice_name().equals("Test::Base"));
1045 out
.print("slicing of unknown most derived, unknown intermediate thrown as base (AMI)... ");
1048 Callback_TestIntf_unknownMostDerived2AsBaseI cb
= new Callback_TestIntf_unknownMostDerived2AsBaseI();
1049 test
.begin_unknownMostDerived2AsBase(cb
);