| /* |
| * Licensed to the Apache Software Foundation (ASF) under one or more |
| * contributor license agreements. See the NOTICE file distributed with |
| * this work for additional information regarding copyright ownership. |
| * The ASF licenses this file to You 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 org.apache.dubbo.config.spring.registry.nacos.nacos; |
| |
| import org.apache.dubbo.registry.nacos.NacosServiceName; |
| |
| import org.junit.jupiter.api.BeforeEach; |
| import org.junit.jupiter.api.Test; |
| import org.springframework.test.annotation.DirtiesContext; |
| |
| import static org.apache.dubbo.common.constants.RegistryConstants.DEFAULT_CATEGORY; |
| import static org.apache.dubbo.registry.nacos.NacosServiceName.WILDCARD; |
| import static org.junit.jupiter.api.Assertions.assertEquals; |
| import static org.junit.jupiter.api.Assertions.assertFalse; |
| import static org.junit.jupiter.api.Assertions.assertTrue; |
| |
| /** |
| * {@link NacosServiceName} Test |
| * |
| * @since 2.7.3 |
| */ |
| @DirtiesContext(classMode = DirtiesContext.ClassMode.AFTER_EACH_TEST_METHOD) |
| public class NacosServiceNameTest { |
| |
| private static final String category = DEFAULT_CATEGORY; |
| |
| private static final String serviceInterface = "org.apache.dubbo.registry.nacos.NacosServiceName"; |
| |
| private static final String version = "1.0.0"; |
| |
| private static final String group = "default"; |
| |
| private final NacosServiceName name = new NacosServiceName(); |
| |
| @BeforeEach |
| public void init() { |
| name.setCategory(category); |
| name.setServiceInterface(serviceInterface); |
| name.setVersion(version); |
| name.setGroup(group); |
| } |
| |
| @Test |
| public void testGetter() { |
| assertEquals(category, name.getCategory()); |
| assertEquals(serviceInterface, name.getServiceInterface()); |
| assertEquals(version, name.getVersion()); |
| assertEquals(group, name.getGroup()); |
| assertEquals("providers:org.apache.dubbo.registry.nacos.NacosServiceName:1.0.0:default", name.getValue()); |
| } |
| |
| @Test |
| public void testToString() { |
| assertEquals("providers:org.apache.dubbo.registry.nacos.NacosServiceName:1.0.0:default", name.toString()); |
| } |
| |
| @Test |
| public void testIsConcrete() { |
| |
| assertTrue(name.isConcrete()); |
| |
| name.setGroup(WILDCARD); |
| assertFalse(name.isConcrete()); |
| |
| init(); |
| name.setVersion(WILDCARD); |
| assertFalse(name.isConcrete()); |
| |
| init(); |
| name.setGroup(null); |
| name.setVersion(null); |
| assertTrue(name.isConcrete()); |
| |
| } |
| |
| @Test |
| public void testIsCompatible() { |
| |
| NacosServiceName concrete = new NacosServiceName(); |
| |
| assertFalse(name.isCompatible(concrete)); |
| |
| // set category |
| concrete.setCategory(category); |
| assertFalse(name.isCompatible(concrete)); |
| |
| concrete.setServiceInterface(serviceInterface); |
| assertFalse(name.isCompatible(concrete)); |
| |
| concrete.setVersion(version); |
| assertFalse(name.isCompatible(concrete)); |
| |
| concrete.setGroup(group); |
| assertTrue(name.isCompatible(concrete)); |
| |
| // wildcard cases |
| name.setGroup(WILDCARD); |
| assertTrue(name.isCompatible(concrete)); |
| |
| init(); |
| name.setVersion(WILDCARD); |
| assertTrue(name.isCompatible(concrete)); |
| |
| // range cases |
| init(); |
| name.setGroup(group + ",2.0.0"); |
| assertTrue(name.isCompatible(concrete)); |
| |
| init(); |
| name.setVersion(version + ",2.0.0"); |
| assertTrue(name.isCompatible(concrete)); |
| } |
| } |