blob: 41868e603ad8efbc9867fdcb48947128b7cd6a98 [file] [log] [blame]
// Copyright 2013 The Flutter Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
package io.flutter.plugins.localauth;
import static org.junit.Assert.assertNotNull;
import static org.junit.Assert.assertNull;
import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.verify;
import static org.mockito.Mockito.when;
import android.app.Activity;
import android.content.Context;
import androidx.lifecycle.Lifecycle;
import io.flutter.embedding.engine.FlutterEngine;
import io.flutter.embedding.engine.dart.DartExecutor;
import io.flutter.embedding.engine.plugins.FlutterPlugin.FlutterPluginBinding;
import io.flutter.embedding.engine.plugins.activity.ActivityPluginBinding;
import io.flutter.embedding.engine.plugins.lifecycle.HiddenLifecycleReference;
import io.flutter.plugin.common.MethodCall;
import io.flutter.plugin.common.MethodChannel;
import org.junit.Test;
public class LocalAuthTest {
@Test
public void isDeviceSupportedReturnsFalse() {
final LocalAuthPlugin plugin = new LocalAuthPlugin();
final MethodChannel.Result mockResult = mock(MethodChannel.Result.class);
plugin.onMethodCall(new MethodCall("isDeviceSupported", null), mockResult);
verify(mockResult).success(false);
}
@Test
public void onDetachedFromActivity_ShouldReleaseActivity() {
final Activity mockActivity = mock(Activity.class);
final ActivityPluginBinding mockActivityBinding = mock(ActivityPluginBinding.class);
when(mockActivityBinding.getActivity()).thenReturn(mockActivity);
Context mockContext = mock(Context.class);
when(mockActivity.getBaseContext()).thenReturn(mockContext);
final HiddenLifecycleReference mockLifecycleReference = mock(HiddenLifecycleReference.class);
when(mockActivityBinding.getLifecycle()).thenReturn(mockLifecycleReference);
final Lifecycle mockLifecycle = mock(Lifecycle.class);
when(mockLifecycleReference.getLifecycle()).thenReturn(mockLifecycle);
final FlutterPluginBinding mockPluginBinding = mock(FlutterPluginBinding.class);
final FlutterEngine mockFlutterEngine = mock(FlutterEngine.class);
when(mockPluginBinding.getFlutterEngine()).thenReturn(mockFlutterEngine);
DartExecutor mockDartExecutor = mock(DartExecutor.class);
when(mockFlutterEngine.getDartExecutor()).thenReturn(mockDartExecutor);
final LocalAuthPlugin plugin = new LocalAuthPlugin();
plugin.onAttachedToEngine(mockPluginBinding);
plugin.onAttachedToActivity(mockActivityBinding);
assertNotNull(plugin.getActivity());
plugin.onDetachedFromActivity();
assertNull(plugin.getActivity());
}
}