You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@shardingsphere.apache.org by zh...@apache.org on 2024/10/14 04:29:11 UTC
(shardingsphere) branch master updated: Add more test cases for DatabaseTypedSPILoader (#33237)
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 <zh...@apache.org>
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()));
+ }
}