diff --git a/android/build.gradle b/android/build.gradle index b343dc8..e5c8625 100644 --- a/android/build.gradle +++ b/android/build.gradle @@ -24,7 +24,7 @@ android { buildToolsVersion getExtOrDefault('buildToolsVersion') defaultConfig { - minSdkVersion 21 + minSdkVersion 24 targetSdkVersion getExtOrIntegerDefault('targetSdkVersion') versionCode 50 versionName "4.0.3" @@ -124,7 +124,7 @@ dependencies { testImplementation 'junit:junit:4.13.1' - androidTestImplementation 'androidx.test.ext:junit:1.1.2' + androidTestImplementation 'androidx.test.ext:junit:1.1.5' //noinspection GradleDependency androidTestImplementation 'org.mockito:mockito-android:3.4.6' androidTestImplementation 'androidx.test.espresso:espresso-core:3.3.0' diff --git a/android/src/androidTest/java/com/emeraldsanto/encryptedstorage/RNEncryptedStorageModuleUnitTest.java b/android/src/androidTest/java/com/emeraldsanto/encryptedstorage/RNEncryptedStorageModuleUnitTest.java index b133209..45b5185 100644 --- a/android/src/androidTest/java/com/emeraldsanto/encryptedstorage/RNEncryptedStorageModuleUnitTest.java +++ b/android/src/androidTest/java/com/emeraldsanto/encryptedstorage/RNEncryptedStorageModuleUnitTest.java @@ -13,77 +13,82 @@ @RunWith(AndroidJUnit4.class) public class RNEncryptedStorageModuleUnitTest { - private RNEncryptedStorageModule module; - - @Before - public void setUp() { - module = new RNEncryptedStorageModule(new ReactApplicationContext(InstrumentationRegistry.getInstrumentation().getTargetContext())); - module.clear(mock(Promise.class)); - } - - @Test - public void shouldGetAndSet() { - Promise promise1 = mock(Promise.class); - module.getItem("test", promise1); - verify(promise1).resolve(null); - - Promise promise2 = mock(Promise.class); - module.setItem("test", "asd", promise2); - verify(promise2).resolve("asd"); - - Promise promise3 = mock(Promise.class); - module.getItem("test", promise3); - verify(promise3).resolve("asd"); - } - - @Test - public void shouldRemove() { - Promise promise1 = mock(Promise.class); - module.setItem("test", "asd", promise1); - verify(promise1).resolve("asd"); - - Promise promise2 = mock(Promise.class); - module.getItem("test", promise2); - verify(promise2).resolve("asd"); - - Promise promise3 = mock(Promise.class); - module.removeItem("test", promise3); - verify(promise3).resolve("test"); - - Promise promise4 = mock(Promise.class); - module.getItem("test", promise4); - verify(promise4).resolve(null); - } - - @Test - public void shouldClear() { - Promise promise1 = mock(Promise.class); - module.setItem("test", "asd", promise1); - verify(promise1).resolve("asd"); - - Promise promise2 = mock(Promise.class); - module.getItem("test", promise2); - verify(promise2).resolve("asd"); - - Promise promise3 = mock(Promise.class); - module.clear(promise3); - verify(promise3).resolve(null); - - Promise promise4 = mock(Promise.class); - module.getItem("test", promise4); - verify(promise4).resolve(null); - } - - @Test - public void shouldKeepValuesWhenRecreated() { - Promise promise1 = mock(Promise.class); - module.setItem("test", "asd", promise1); - verify(promise1).resolve("asd"); - - module = new RNEncryptedStorageModule(new ReactApplicationContext(InstrumentationRegistry.getInstrumentation().getTargetContext())); - - Promise promise2 = mock(Promise.class); - module.getItem("test", promise2); - verify(promise2).resolve("asd"); - } + private RNEncryptedStorageModule module; + + @Before + public void setUp() { + ReactApplicationContext reactApplicationContext = mock(ReactApplicationContext.class); + + module = new RNEncryptedStorageModule(reactApplicationContext); + + module.clear(mock(Promise.class)); + } + + @Test + public void shouldGetAndSet() { + Promise promise1 = mock(Promise.class); + module.getItem("test", promise1); + verify(promise1).resolve(null); + + Promise promise2 = mock(Promise.class); + module.setItem("test", "asd", promise2); + verify(promise2).resolve("asd"); + + Promise promise3 = mock(Promise.class); + module.getItem("test", promise3); + verify(promise3).resolve("asd"); + } + + @Test + public void shouldRemove() { + Promise promise1 = mock(Promise.class); + module.setItem("test", "asd", promise1); + verify(promise1).resolve("asd"); + + Promise promise2 = mock(Promise.class); + module.getItem("test", promise2); + verify(promise2).resolve("asd"); + + Promise promise3 = mock(Promise.class); + module.removeItem("test", promise3); + verify(promise3).resolve("test"); + + Promise promise4 = mock(Promise.class); + module.getItem("test", promise4); + verify(promise4).resolve(null); + } + + @Test + public void shouldClear() { + Promise promise1 = mock(Promise.class); + module.setItem("test", "asd", promise1); + verify(promise1).resolve("asd"); + + Promise promise2 = mock(Promise.class); + module.getItem("test", promise2); + verify(promise2).resolve("asd"); + + Promise promise3 = mock(Promise.class); + module.clear(promise3); + verify(promise3).resolve(null); + + Promise promise4 = mock(Promise.class); + module.getItem("test", promise4); + verify(promise4).resolve(null); + } + + @Test + public void shouldKeepValuesWhenRecreated() { + Promise promise1 = mock(Promise.class); + module.setItem("test", "asd", promise1); + verify(promise1).resolve("asd"); + + // Recreate the module with a mocked ReactApplicationContext + ReactApplicationContext reactApplicationContext = mock(ReactApplicationContext.class); + module = new RNEncryptedStorageModule(reactApplicationContext); + + Promise promise2 = mock(Promise.class); + module.getItem("test", promise2); + verify(promise2).resolve("asd"); + } } diff --git a/react-native-encrypted-storage.podspec b/react-native-encrypted-storage.podspec index 73f3cdd..001e9f9 100644 --- a/react-native-encrypted-storage.podspec +++ b/react-native-encrypted-storage.podspec @@ -10,7 +10,7 @@ Pod::Spec.new do |s| s.license = package["license"] s.authors = package["author"] - s.platforms = { :ios => "10.0" } + s.platforms = { :ios => "10.0", :tvos => "10.0" } s.source = { :git => "https://github.com/emeraldsanto/react-native-encrypted-storage.git", :tag => "#{s.version}" }