This is an automated email from the ASF dual-hosted git repository.

zhaojinchao pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/shardingsphere.git


The following commit(s) were added to refs/heads/master by this push:
     new 97a2909a163 Add more test cases for DatabaseTypedSPILoader (#33237)
97a2909a163 is described below

commit 97a2909a163fdea1817f7930e2da0b8ef6a0016e
Author: Liang Zhang <[email protected]>
AuthorDate: Mon Oct 14 12:29:06 2024 +0800

    Add more test cases for DatabaseTypedSPILoader (#33237)
---
 .../core/spi/DatabaseTypedSPILoaderTest.java       | 43 +++++++++++++++++++++-
 1 file changed, 42 insertions(+), 1 deletion(-)

diff --git 
a/infra/database/core/src/test/java/org/apache/shardingsphere/infra/database/core/spi/DatabaseTypedSPILoaderTest.java
 
b/infra/database/core/src/test/java/org/apache/shardingsphere/infra/database/core/spi/DatabaseTypedSPILoaderTest.java
index c717510059a..04924d1f6a9 100644
--- 
a/infra/database/core/src/test/java/org/apache/shardingsphere/infra/database/core/spi/DatabaseTypedSPILoaderTest.java
+++ 
b/infra/database/core/src/test/java/org/apache/shardingsphere/infra/database/core/spi/DatabaseTypedSPILoaderTest.java
@@ -19,11 +19,17 @@ package org.apache.shardingsphere.infra.database.core.spi;
 
 import 
org.apache.shardingsphere.infra.database.core.spi.fixture.DatabaseTypedSPIFixture;
 import org.apache.shardingsphere.infra.database.core.type.DatabaseType;
+import 
org.apache.shardingsphere.infra.spi.exception.ServiceProviderNotFoundException;
 import org.apache.shardingsphere.infra.spi.type.typed.TypedSPILoader;
 import org.junit.jupiter.api.Test;
 
+import java.util.Properties;
+
 import static org.junit.jupiter.api.Assertions.assertDoesNotThrow;
+import static org.junit.jupiter.api.Assertions.assertFalse;
+import static org.junit.jupiter.api.Assertions.assertThrows;
 import static org.junit.jupiter.api.Assertions.assertTrue;
+import static org.mockito.Mockito.mock;
 
 class DatabaseTypedSPILoaderTest {
     
@@ -38,7 +44,42 @@ class DatabaseTypedSPILoaderTest {
     }
     
     @Test
-    void assertGetServiceWithRegisteredDatabaseType() {
+    void assertServiceNotFound() {
+        
assertFalse(DatabaseTypedSPILoader.findService(DatabaseTypedSPIFixture.class, 
mock(DatabaseType.class)).isPresent());
+    }
+    
+    @Test
+    void assertFindServiceWithTrunkDatabaseTypeAndProperties() {
+        
assertTrue(DatabaseTypedSPILoader.findService(DatabaseTypedSPIFixture.class, 
TypedSPILoader.getService(DatabaseType.class, "TRUNK"), new 
Properties()).isPresent());
+    }
+    
+    @Test
+    void assertFindServiceWithBranchDatabaseTypeAndProperties() {
+        
assertTrue(DatabaseTypedSPILoader.findService(DatabaseTypedSPIFixture.class, 
TypedSPILoader.getService(DatabaseType.class, "BRANCH"), new 
Properties()).isPresent());
+    }
+    
+    @Test
+    void assertServiceNotFoundWithProperties() {
+        
assertFalse(DatabaseTypedSPILoader.findService(DatabaseTypedSPIFixture.class, 
mock(DatabaseType.class), new Properties()).isPresent());
+    }
+    
+    @Test
+    void assertGetService() {
         assertDoesNotThrow(() -> 
DatabaseTypedSPILoader.getService(DatabaseTypedSPIFixture.class, 
TypedSPILoader.getService(DatabaseType.class, "TRUNK")));
     }
+    
+    @Test
+    void assertGetServiceWithServiceProviderNotFoundException() {
+        assertThrows(ServiceProviderNotFoundException.class, () -> 
DatabaseTypedSPILoader.getService(DatabaseTypedSPIFixture.class, 
mock(DatabaseType.class)));
+    }
+    
+    @Test
+    void assertGetServiceWithProperties() {
+        assertDoesNotThrow(() -> 
DatabaseTypedSPILoader.getService(DatabaseTypedSPIFixture.class, 
TypedSPILoader.getService(DatabaseType.class, "TRUNK"), new Properties()));
+    }
+    
+    @Test
+    void 
assertGetServiceWithPropertiesAndThrowsServiceProviderNotFoundException() {
+        assertThrows(ServiceProviderNotFoundException.class, () -> 
DatabaseTypedSPILoader.getService(DatabaseTypedSPIFixture.class, 
mock(DatabaseType.class), new Properties()));
+    }
 }

Reply via email to