100 {
101 ShimPluginRegistry registryUnderTest = new ShimPluginRegistry(mockFlutterEngine);
103 registryUnderTest.registrarFor("test");
104
105 ArgumentCaptor<FlutterPlugin> shimAggregateCaptor =
106 ArgumentCaptor.forClass(FlutterPlugin.class);
107 verify(mockPluginRegistry).add(shimAggregateCaptor.capture());
108 FlutterPlugin shimAggregateAsPlugin = shimAggregateCaptor.getValue();
109 ActivityAware shimAggregateAsActivityAware = (ActivityAware) shimAggregateCaptor.getValue();
110
111
112 assertNull(registrarUnderTest.
context());
113 assertNull(registrarUnderTest.
activity());
114
115 shimAggregateAsPlugin.onAttachedToEngine(mockFlutterPluginBinding);
116
117 assertEquals(mockApplicationContext, registrarUnderTest.
context());
118 assertNull(registrarUnderTest.
activity());
119
120 shimAggregateAsActivityAware.onAttachedToActivity(mockActivityPluginBinding);
121
122
123 assertEquals(mockActivity, registrarUnderTest.
activeContext());
124 assertEquals(mockActivity, registrarUnderTest.
activity());
125
126 shimAggregateAsActivityAware.onDetachedFromActivityForConfigChanges();
127
128 assertEquals(mockApplicationContext, registrarUnderTest.
activeContext());
129 assertNull(registrarUnderTest.
activity());
130
131 shimAggregateAsActivityAware.onReattachedToActivityForConfigChanges(mockActivityPluginBinding);
132 assertEquals(mockActivity, registrarUnderTest.
activeContext());
133 assertEquals(mockActivity, registrarUnderTest.
activity());
134
135 shimAggregateAsActivityAware.onDetachedFromActivity();
136
137 assertEquals(mockApplicationContext, registrarUnderTest.
activeContext());
138 assertNull(registrarUnderTest.
activity());
139
140
141 shimAggregateAsActivityAware.onAttachedToActivity(mockActivityPluginBinding);
142
143 assertEquals(mockActivity, registrarUnderTest.
activeContext());
144 assertEquals(mockActivity, registrarUnderTest.
activity());
145
146
147 shimAggregateAsPlugin.onDetachedFromEngine(mockFlutterPluginBinding);
148
149
151 assertNull(registrarUnderTest.
activity());
152 }