From a42e55e43f9ece6e36f71e507cc93cdc707f22dd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9D=8E=E6=99=93=E5=8F=8C=20Li=20Xiao=20Shuang?= <644968328@qq.com> Date: Thu, 10 Nov 2022 15:10:16 +0800 Subject: [PATCH] Add unit tests to MapperManager class (#9534) --- .../plugin/datasource/MapperManagerTest.java | 72 +++++++++++++++++++ 1 file changed, 72 insertions(+) create mode 100644 plugin/datasource/src/test/java/com/alibaba/nacos/plugin/datasource/MapperManagerTest.java diff --git a/plugin/datasource/src/test/java/com/alibaba/nacos/plugin/datasource/MapperManagerTest.java b/plugin/datasource/src/test/java/com/alibaba/nacos/plugin/datasource/MapperManagerTest.java new file mode 100644 index 000000000..8178eec3b --- /dev/null +++ b/plugin/datasource/src/test/java/com/alibaba/nacos/plugin/datasource/MapperManagerTest.java @@ -0,0 +1,72 @@ +/* + * Copyright 1999-2022 Alibaba Group Holding Ltd. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.alibaba.nacos.plugin.datasource; + +import com.alibaba.nacos.plugin.datasource.constants.DataSourceConstant; +import com.alibaba.nacos.plugin.datasource.mapper.AbstractMapper; +import com.alibaba.nacos.plugin.datasource.mapper.Mapper; +import org.junit.Assert; +import org.junit.Test; + +import java.lang.reflect.Field; +import java.util.Map; + +public class MapperManagerTest { + + @Test + public void testInstance() { + MapperManager instance = MapperManager.instance(); + Assert.assertNotNull(instance); + } + + @Test + public void testLoadInitial() throws NoSuchFieldException, IllegalAccessException { + MapperManager instance = MapperManager.instance(); + instance.loadInitial(); + Class mapperManagerClass = MapperManager.class; + Field declaredField = mapperManagerClass.getDeclaredField("MAPPER_SPI_MAP"); + declaredField.setAccessible(true); + Map> map = (Map>) declaredField.get(instance); + Assert.assertEquals(2, map.size()); + } + + @Test + public void testJoin() { + MapperManager.join(new AbstractMapper() { + @Override + public String getTableName() { + return "test"; + } + + @Override + public String getDataSource() { + return DataSourceConstant.MYSQL; + } + }); + MapperManager instance = MapperManager.instance(); + Mapper mapper = instance.findMapper(DataSourceConstant.MYSQL, "test"); + Assert.assertNotNull(mapper); + } + + @Test + public void testFindMapper() { + testJoin(); + MapperManager instance = MapperManager.instance(); + Mapper mapper = instance.findMapper(DataSourceConstant.MYSQL, "test"); + Assert.assertNotNull(mapper); + } +} \ No newline at end of file