blob: 54cd21eae705d1923125992f10d6c7f0e0a73809 [file] [log] [blame]
/*
* 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.servicecomb.core.registry.discovery;
public class TestOperationInstancesDiscoveryFilter {
// @SwaggerDefinition(basePath = "/v1")
// private static class V1_0_0 {
// @ApiOperation(value = "", httpMethod = "GET")
// public void add() {
// }
// }
//
// @SwaggerDefinition(basePath = "/v1")
// private static class V1_1_0 {
// @ApiOperation(value = "", httpMethod = "GET")
// public void add() {
// }
//
// @ApiOperation(value = "", httpMethod = "GET")
// public void dec() {
// }
// }
//
// OperationInstancesDiscoveryFilter filter = new OperationInstancesDiscoveryFilter();
//
// DiscoveryContext context = new DiscoveryContext();
//
// EventBus eventBus = new EventBus();
//
// String appId = "app";
//
// String microserviceName = "ms";
//
// ServiceRegistry serviceRegistry =
// new LocalServiceRegistry(eventBus, ServiceRegistryConfig.INSTANCE,
// MicroserviceDefinition.create(appId, "self"));
//
// @Mocked
// ApplicationContext applicationContext;
//
// @Mocked
// Invocation invocation;
//
// OperationMeta latestOperationMeta;
//
// ConsumerSchemaFactory consumerSchemaFactory = new ConsumerSchemaFactory();
//
// DiscoveryTreeNode result;
//
// @Before
// public void setup() {
// serviceRegistry.init();
// BeanUtils.setContext(applicationContext);
//
// RegistryUtils.setServiceRegistry(serviceRegistry);
// }
//
// private void setupOnChange() {
// new Expectations(RegistryUtils.class) {
// {
// invocation.getOperationMeta();
// result = latestOperationMeta;
// invocation.getMicroserviceQualifiedName();
// result = latestOperationMeta.getMicroserviceQualifiedName();
// }
// };
//
// context.setInputParameters(invocation);
// }
//
// @After
// public void teardown() {
// RegistryUtils.setServiceRegistry(null);
// BeanUtils.setContext(null);
// CseContext.getInstance().setConsumerSchemaFactory(null);
// CseContext.getInstance().setSchemaListenerManager(null);
// }
//
// private MicroserviceInstance createInstance(String serviceId) {
// MicroserviceInstance instance = new MicroserviceInstance();
// instance.setInstanceId(UUID.randomUUID().toString());
// instance.setServiceId(serviceId);
// return instance;
// }
//
// private Microservice regMicroservice(String serviceId, String version, Class<?> schemaCls, int instanceCount) {
// String schemaId = "sid";
//
// Microservice microservice = new Microservice();
// microservice.setServiceId(serviceId);
// microservice.setAppId(appId);
// microservice.setServiceName(microserviceName);
// microservice.setVersion(version);
// microservice.setSchemas(Arrays.asList(schemaId));
// serviceRegistry.getServiceRegistryClient().registerMicroservice(microservice);
//
// String schemaContent = SwaggerUtils.swaggerToString(SwaggerGenerator.generate(schemaCls));
// serviceRegistry.getServiceRegistryClient().registerSchema(serviceId, schemaId, schemaContent);
//
// for (int idx = 0; idx < instanceCount; idx++) {
// MicroserviceInstance instance = createInstance(serviceId);
// serviceRegistry.getServiceRegistryClient().registerMicroserviceInstance(instance);
// }
//
// return microservice;
// }
//
// @Test
// public void getOrder() {
// Assert.assertEquals(-10000, filter.getOrder());
// }
//
// @Test
// public void isGroupingFilterAndEnabled() {
// Assert.assertTrue(filter.isGroupingFilter());
// Assert.assertTrue(filter.enabled());
// }
//
// @Test
// public void discovery_v1_0_0() {
// regMicroservice("1", "1.0.0", V1_0_0.class, 2);
//
// MicroserviceVersions MicroserviceVersions =
// serviceRegistry.getAppManager().getOrCreateMicroserviceVersions(appId, microserviceName);
// MicroserviceVersions.submitPull();
// MicroserviceVersionRule microserviceVersionRule =
// MicroserviceVersions.getOrCreateMicroserviceVersionRule(DefinitionConst.VERSION_RULE_ALL);
// MicroserviceVersionMeta latestMicroserviceVersionMeta = microserviceVersionRule.getLatestMicroserviceVersion();
// latestOperationMeta = latestMicroserviceVersionMeta.getMicroserviceMeta().ensureFindOperation("sid.add");
// DiscoveryTreeNode parent = new DiscoveryTreeNode().fromCache(microserviceVersionRule.getVersionedCache());
//
// setupOnChange();
//
// result = filter.discovery(context, parent);
//
// Assert.assertEquals(2, result.mapData().size());
// result.mapData().values().forEach(instance -> {
// Assert.assertEquals("1", ((MicroserviceInstance) instance).getServiceId());
// });
// }
//
// @Test
// public void discovery_v1_1_0_add() {
// regMicroservice("1", "1.0.0", V1_0_0.class, 2);
// regMicroservice("2", "1.1.0", V1_1_0.class, 2);
//
// MicroserviceVersions MicroserviceVersions =
// serviceRegistry.getAppManager().getOrCreateMicroserviceVersions(appId, microserviceName);
// MicroserviceVersions.submitPull();
// MicroserviceVersionRule microserviceVersionRule =
// MicroserviceVersions.getOrCreateMicroserviceVersionRule(DefinitionConst.VERSION_RULE_ALL);
// MicroserviceVersionMeta latestMicroserviceVersionMeta = microserviceVersionRule.getLatestMicroserviceVersion();
// latestOperationMeta = latestMicroserviceVersionMeta.getMicroserviceMeta().ensureFindOperation("sid.add");
// DiscoveryTreeNode parent = new DiscoveryTreeNode().fromCache(microserviceVersionRule.getVersionedCache());
//
// setupOnChange();
//
// result = filter.discovery(context, parent);
//
// Assert.assertEquals(4, result.mapData().size());
// Set<String> ids = new HashSet<>();
// result.mapData().values().forEach(instance -> {
// ids.add(((MicroserviceInstance) instance).getServiceId());
// });
// Assert.assertThat(ids, Matchers.containsInAnyOrder("1", "2"));
// }
//
// @Test
// public void discovery_v1_1_0_dec() {
// regMicroservice("1", "1.0.0", V1_0_0.class, 2);
// regMicroservice("2", "1.1.0", V1_1_0.class, 2);
//
// MicroserviceVersions MicroserviceVersions =
// serviceRegistry.getAppManager().getOrCreateMicroserviceVersions(appId, microserviceName);
// MicroserviceVersions.submitPull();
// MicroserviceVersionRule microserviceVersionRule =
// MicroserviceVersions.getOrCreateMicroserviceVersionRule(DefinitionConst.VERSION_RULE_ALL);
// MicroserviceVersionMeta latestMicroserviceVersionMeta = microserviceVersionRule.getLatestMicroserviceVersion();
// latestOperationMeta = latestMicroserviceVersionMeta.getMicroserviceMeta().ensureFindOperation("sid.dec");
// DiscoveryTreeNode parent = new DiscoveryTreeNode().fromCache(microserviceVersionRule.getVersionedCache());
//
// setupOnChange();
//
// result = filter.discovery(context, parent);
//
// Assert.assertEquals(2, result.mapData().size());
// Set<String> ids = new HashSet<>();
// result.mapData().values().forEach(instance -> {
// ids.add(((MicroserviceInstance) instance).getServiceId());
// });
// Assert.assertThat(ids, Matchers.containsInAnyOrder("2"));
// }
}