|
3 | 3 | import com.fasterxml.jackson.databind.ObjectMapper; |
4 | 4 | import com.fasterxml.jackson.databind.node.ObjectNode; |
5 | 5 | import org.junit.Test; |
| 6 | +import software.amazon.jsii.JsiiEngine; |
6 | 7 | import software.amazon.jsii.JsiiException; |
7 | | -import software.amazon.jsii.tests.calculator.AbstractClass; |
8 | | -import software.amazon.jsii.tests.calculator.AbstractClassReturner; |
9 | | -import software.amazon.jsii.tests.calculator.Add; |
10 | | -import software.amazon.jsii.tests.calculator.AllTypes; |
11 | | -import software.amazon.jsii.tests.calculator.AllTypesEnum; |
12 | | -import software.amazon.jsii.tests.calculator.AsyncVirtualMethods; |
13 | | -import software.amazon.jsii.tests.calculator.Calculator; |
14 | | -import software.amazon.jsii.tests.calculator.CalculatorProps; |
15 | | -import software.amazon.jsii.tests.calculator.ClassWithCollections; |
16 | | -import software.amazon.jsii.tests.calculator.ClassWithJavaReservedWords; |
17 | | -import software.amazon.jsii.tests.calculator.ClassWithPrivateConstructorAndAutomaticProperties; |
18 | | -import software.amazon.jsii.tests.calculator.Constructors; |
19 | | -import software.amazon.jsii.tests.calculator.DataRenderer; |
20 | | -import software.amazon.jsii.tests.calculator.DerivedStruct; |
21 | | -import software.amazon.jsii.tests.calculator.DiamondInheritanceTopLevelStruct; |
22 | | -import software.amazon.jsii.tests.calculator.DoNotOverridePrivates; |
23 | | -import software.amazon.jsii.tests.calculator.DoubleTrouble; |
24 | | -import software.amazon.jsii.tests.calculator.EnumDispenser; |
25 | | -import software.amazon.jsii.tests.calculator.EraseUndefinedHashValues; |
26 | | -import software.amazon.jsii.tests.calculator.EraseUndefinedHashValuesOptions; |
27 | | -import software.amazon.jsii.tests.calculator.GiveMeStructs; |
28 | | -import software.amazon.jsii.tests.calculator.GreetingAugmenter; |
29 | | -import software.amazon.jsii.tests.calculator.IFriendlier; |
30 | | -import software.amazon.jsii.tests.calculator.IFriendlyRandomGenerator; |
31 | | -import software.amazon.jsii.tests.calculator.IInterfaceWithProperties; |
32 | | -import software.amazon.jsii.tests.calculator.IPublicInterface; |
33 | | -import software.amazon.jsii.tests.calculator.IRandomNumberGenerator; |
34 | | -import software.amazon.jsii.tests.calculator.InbetweenClass; |
35 | | -import software.amazon.jsii.tests.calculator.IInterfaceImplementedByAbstractClass; |
36 | | -import software.amazon.jsii.tests.calculator.JSObjectLiteralForInterface; |
37 | | -import software.amazon.jsii.tests.calculator.JSObjectLiteralToNative; |
38 | | -import software.amazon.jsii.tests.calculator.JSObjectLiteralToNativeClass; |
39 | | -import software.amazon.jsii.tests.calculator.JavaReservedWords; |
40 | | -import software.amazon.jsii.tests.calculator.JsiiAgent; |
41 | | -import software.amazon.jsii.tests.calculator.Multiply; |
42 | | -import software.amazon.jsii.tests.calculator.Negate; |
43 | | -import software.amazon.jsii.tests.calculator.NodeStandardLibrary; |
44 | | -import software.amazon.jsii.tests.calculator.NullShouldBeTreatedAsUndefined; |
45 | | -import software.amazon.jsii.tests.calculator.NullShouldBeTreatedAsUndefinedData; |
46 | | -import software.amazon.jsii.tests.calculator.NumberGenerator; |
47 | | -import software.amazon.jsii.tests.calculator.OptionalStruct; |
48 | | -import software.amazon.jsii.tests.calculator.PartiallyInitializedThisConsumer; |
49 | | -import software.amazon.jsii.tests.calculator.Polymorphism; |
50 | | -import software.amazon.jsii.tests.calculator.Power; |
51 | | -import software.amazon.jsii.tests.calculator.PublicClass; |
52 | | -import software.amazon.jsii.tests.calculator.ReferenceEnumFromScopedPackage; |
53 | | -import software.amazon.jsii.tests.calculator.ReturnsPrivateImplementationOfInterface; |
54 | | -import software.amazon.jsii.tests.calculator.StableStruct; |
55 | | -import software.amazon.jsii.tests.calculator.Statics; |
56 | | -import software.amazon.jsii.tests.calculator.StructWithJavaReservedWords; |
57 | | -import software.amazon.jsii.tests.calculator.Sum; |
58 | | -import software.amazon.jsii.tests.calculator.SyncVirtualMethods; |
59 | | -import software.amazon.jsii.tests.calculator.UnionProperties; |
60 | | -import software.amazon.jsii.tests.calculator.UsesInterfaceWithProperties; |
61 | | -import software.amazon.jsii.tests.calculator.VariadicMethod; |
| 8 | +import software.amazon.jsii.tests.calculator.*; |
62 | 9 | import software.amazon.jsii.tests.calculator.composition.CompositeOperation; |
63 | 10 | import software.amazon.jsii.tests.calculator.lib.EnumFromScopedModule; |
64 | 11 | import software.amazon.jsii.tests.calculator.lib.IFriendly; |
65 | 12 | import software.amazon.jsii.tests.calculator.lib.MyFirstStruct; |
66 | 13 | import software.amazon.jsii.tests.calculator.lib.Number; |
67 | 14 | import software.amazon.jsii.tests.calculator.lib.StructWithOnlyOptionals; |
68 | 15 | import software.amazon.jsii.tests.calculator.lib.Value; |
69 | | -import software.amazon.jsii.tests.calculator.ConstructorPassesThisOut; |
70 | 16 |
|
71 | 17 | import java.io.IOException; |
72 | 18 | import java.time.Instant; |
|
88 | 34 | import static org.junit.Assert.assertSame; |
89 | 35 | import static org.junit.Assert.assertTrue; |
90 | 36 |
|
| 37 | +@SuppressWarnings("deprecated") |
91 | 38 | public class ComplianceTest { |
92 | 39 | /** |
93 | 40 | * Verify that we can marshal and unmarshal objects without type information. |
@@ -640,10 +587,16 @@ public void syncOverrides_callsSuper() { |
640 | 587 |
|
641 | 588 | @Test(expected = JsiiException.class) |
642 | 589 | public void fail_syncOverrides_callsDoubleAsync_method() { |
643 | | - SyncOverrides obj = new SyncOverrides(); |
644 | | - obj.callAsync = true; |
| 590 | + try { |
| 591 | + JsiiEngine.setQuietMode(true); |
| 592 | + |
| 593 | + SyncOverrides obj = new SyncOverrides(); |
| 594 | + obj.callAsync = true; |
645 | 595 |
|
646 | | - obj.callerIsMethod(); |
| 596 | + obj.callerIsMethod(); |
| 597 | + } finally { |
| 598 | + JsiiEngine.setQuietMode(false); |
| 599 | + } |
647 | 600 | } |
648 | 601 |
|
649 | 602 | @Test(expected = JsiiException.class) |
@@ -1360,6 +1313,48 @@ public void mapReturnedByMethodCanBeRead() { |
1360 | 1313 | assertThat(result.size(), is(2)); |
1361 | 1314 | } |
1362 | 1315 |
|
| 1316 | + @Test |
| 1317 | + public void canOverrideProtectedMethod() { |
| 1318 | + final String challenge = "Cthulhu Fhtagn!"; |
| 1319 | + final OverridableProtectedMember overridden = new OverridableProtectedMember() { |
| 1320 | + @Override |
| 1321 | + protected String overrideMe() { |
| 1322 | + return challenge; |
| 1323 | + } |
| 1324 | + }; |
| 1325 | + assertEquals(challenge, overridden.valueFromProtected()); |
| 1326 | + } |
| 1327 | + |
| 1328 | + @Test |
| 1329 | + public void canOverrideProtectedGetter() { |
| 1330 | + final String challenge = "Cthulhu Fhtagn!"; |
| 1331 | + final OverridableProtectedMember overridden = new OverridableProtectedMember() { |
| 1332 | + @Override |
| 1333 | + protected String getOverrideReadOnly() { |
| 1334 | + return "Cthulhu "; |
| 1335 | + } |
| 1336 | + |
| 1337 | + @Override |
| 1338 | + protected String getOverrideReadWrite() { |
| 1339 | + return "Fhtagn!"; |
| 1340 | + } |
| 1341 | + }; |
| 1342 | + assertEquals(challenge, overridden.valueFromProtected()); |
| 1343 | + } |
| 1344 | + |
| 1345 | + @Test |
| 1346 | + public void canOverrideProtectedSetter() { |
| 1347 | + final String challenge = "Bazzzzzzzzzzzaar..."; |
| 1348 | + final OverridableProtectedMember overridden = new OverridableProtectedMember() { |
| 1349 | + @Override |
| 1350 | + protected void setOverrideReadWrite(String value) { |
| 1351 | + super.setOverrideReadWrite("zzzzzzzzz" + value); |
| 1352 | + } |
| 1353 | + }; |
| 1354 | + overridden.switchModes(); |
| 1355 | + assertEquals(challenge, overridden.valueFromProtected()); |
| 1356 | + } |
| 1357 | + |
1363 | 1358 | static class PartiallyInitializedThisConsumerImpl extends PartiallyInitializedThisConsumer { |
1364 | 1359 | @Override |
1365 | 1360 | public String consumePartiallyInitializedThis(final ConstructorPassesThisOut obj, |
|
0 commit comments