ocket8888 commented on a change in pull request #4857:
URL: https://github.com/apache/trafficcontrol/pull/4857#discussion_r467543960
##########
File path:
traffic_router/core/src/test/java/com/comcast/cdn/traffic_control/traffic_router/core/util/AbstractResourceWatcherTest.java
##########
@@ -0,0 +1,97 @@
+package com.comcast.cdn.traffic_control.traffic_router.core.util;
+
+import com.comcast.cdn.traffic_control.traffic_router.core.TestBase;
+import com.comcast.cdn.traffic_control.traffic_router.core.ds.SteeringRegistry;
+import com.comcast.cdn.traffic_control.traffic_router.core.ds.SteeringWatcher;
+import com.comcast.cdn.traffic_control.traffic_router.core.edge.CacheRegister;
+import com.comcast.cdn.traffic_control.traffic_router.core.loc.*;
+import
com.comcast.cdn.traffic_control.traffic_router.core.router.TrafficRouter;
+import
com.comcast.cdn.traffic_control.traffic_router.core.router.TrafficRouterManager;
+import com.fasterxml.jackson.databind.JsonNode;
+import com.fasterxml.jackson.databind.node.ObjectNode;
+import org.apache.log4j.Logger;
+import org.junit.After;
+import org.junit.Before;
+import org.junit.BeforeClass;
+import org.junit.Test;
+import org.junit.experimental.categories.Category;
+import org.springframework.context.ApplicationContext;
+
+import java.nio.file.Files;
+import java.nio.file.Paths;
+
+import static
com.comcast.cdn.traffic_control.traffic_router.core.ds.SteeringWatcher.DEFAULT_STEERING_DATA_URL;
+import static
com.comcast.cdn.traffic_control.traffic_router.core.loc.FederationsWatcher.DEFAULT_FEDERATION_DATA_URL;
+import static org.hamcrest.MatcherAssert.assertThat;
+import static org.hamcrest.Matchers.endsWith;
+import static org.hamcrest.Matchers.equalTo;
+import static org.hamcrest.Matchers.greaterThan;
+import static org.junit.Assert.*;
+
+
+@Category(IntegrationTest.class)
+public class AbstractResourceWatcherTest {
+
+ private static final Logger LOGGER =
Logger.getLogger(com.comcast.cdn.traffic_control.traffic_router.core.util.AbstractResourceWatcherTest.class);
+
+ private FederationsWatcher federationsWatcher;
+ private SteeringWatcher steeringWatcher;
+ private TrafficRouterManager trafficRouterManager;
+ private SteeringRegistry steeringRegistry;
+ private static ApplicationContext context;
+
+ @BeforeClass
+ public static void setUpBeforeClass() throws Exception {
+ assertThat("Copy core/src/main/conf/traffic_monitor.properties to
core/src/test/conf and set 'traffic_monitor.bootstrap.hosts' to a real traffic
monitor", Files.exists(Paths.get(TestBase.monitorPropertiesPath)),
equalTo(true));
+ context = TestBase.getContext();
+ }
+
+ @Before
+ public void setUp() throws Exception {
+ federationsWatcher = (FederationsWatcher)
context.getBean("federationsWatcher");
+ steeringWatcher = (SteeringWatcher) context.getBean("steeringWatcher");
+ steeringRegistry = (SteeringRegistry)
context.getBean("steeringRegistry");
+ trafficRouterManager = (TrafficRouterManager)
context.getBean("trafficRouterManager");
+ trafficRouterManager.getTrafficRouter().setApplicationContext(context);
+
+ while (!federationsWatcher.isLoaded()) {
+ LOGGER.info("Waiting for a valid federations database before
proceeding");
+ Thread.sleep(1000);
+ }
+
+ while (!steeringWatcher.isLoaded()) {
+ LOGGER.info("Waiting for a valid steering database before
proceeding");
+ Thread.sleep(1000);
+ }
+
+ }
+
+ @After
+ public void tearDown() throws Exception {
+ TrafficRouter trafficRouter = trafficRouterManager.getTrafficRouter();
+ CacheRegister cacheRegister = trafficRouter.getCacheRegister();
+ JsonNode config = cacheRegister.getConfig();
+ config = ((ObjectNode)
config).put(federationsWatcher.getWatcherConfigPrefix() + ".polling.url",
DEFAULT_FEDERATION_DATA_URL);
+ federationsWatcher.configure(config);
+ assertThat(federationsWatcher.getDataBaseURL(),
endsWith(DEFAULT_FEDERATION_DATA_URL.split("api")[1]));
+ }
+
+ @Test
+ public void testWatchers() {
+ TrafficRouter trafficRouter = trafficRouterManager.getTrafficRouter();
+ CacheRegister cacheRegister = trafficRouter.getCacheRegister();
+ JsonNode config = cacheRegister.getConfig();
+ assertNull(config.get(federationsWatcher.getWatcherConfigPrefix() +
".polling.url"));
+ assertThat(steeringRegistry.getAll().size(), greaterThan(0));
+ assertThat(federationsWatcher.getDataBaseURL(),
endsWith(DEFAULT_FEDERATION_DATA_URL.split("api")[1]));
+ assertThat(steeringWatcher.getDataBaseURL(),
endsWith(DEFAULT_STEERING_DATA_URL.split("api")[1]));
+
+ String newFedsUrl =
"https://${toHostname}/api/3.0/notAFederationsEndpoint";
+ config = ((ObjectNode)
config).put(federationsWatcher.getWatcherConfigPrefix() + ".polling.url",
newFedsUrl);
+ federationsWatcher.configure(config);
+ config = cacheRegister.getConfig();
+ assertThat(config.get(federationsWatcher.getWatcherConfigPrefix() +
".polling.url").asText(), endsWith("api/3.0/notAFederationsEndpoint"));
+ assertThat(federationsWatcher.getDataBaseURL(),
endsWith("api/3.0/notAFederationsEndpoint"));
+ }
+
+}
Review comment:
This isn't a text file without a terminating newline character
----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
For queries about this service, please contact Infrastructure at:
[email protected]