From 223532e4a1ecc531047f6eefee3bb563a48ecbe8 Mon Sep 17 00:00:00 2001 From: Harald Musum Date: Wed, 24 Nov 2021 11:12:54 +0100 Subject: Revive test and test some more --- .../subscription/impl/ConfigSubscription.java | 2 ++ .../subscription/ConfigSubscriptionTest.java | 38 ++++++++++++---------- 2 files changed, 22 insertions(+), 18 deletions(-) diff --git a/config/src/main/java/com/yahoo/config/subscription/impl/ConfigSubscription.java b/config/src/main/java/com/yahoo/config/subscription/impl/ConfigSubscription.java index a3265671d50..d107d1e30b5 100644 --- a/config/src/main/java/com/yahoo/config/subscription/impl/ConfigSubscription.java +++ b/config/src/main/java/com/yahoo/config/subscription/impl/ConfigSubscription.java @@ -329,6 +329,8 @@ public abstract class ConfigSubscription { state = State.CLOSED; } + public boolean isClosed() { return state == State.CLOSED; } + State getState() { return state; } diff --git a/config/src/test/java/com/yahoo/config/subscription/ConfigSubscriptionTest.java b/config/src/test/java/com/yahoo/config/subscription/ConfigSubscriptionTest.java index ea73a6cbef1..270c618ee1b 100644 --- a/config/src/test/java/com/yahoo/config/subscription/ConfigSubscriptionTest.java +++ b/config/src/test/java/com/yahoo/config/subscription/ConfigSubscriptionTest.java @@ -3,19 +3,21 @@ package com.yahoo.config.subscription; import com.yahoo.config.ConfigInstance; import com.yahoo.config.ConfigurationRuntimeException; -import com.yahoo.foo.SimpletypesConfig; -import com.yahoo.foo.AppConfig; import com.yahoo.config.subscription.impl.ConfigSubscription; +import com.yahoo.foo.AppConfig; +import com.yahoo.foo.SimpletypesConfig; import com.yahoo.vespa.config.ConfigKey; import com.yahoo.vespa.config.TimingValues; - -import org.junit.Ignore; import org.junit.Test; import java.util.Collections; import java.util.List; -import static org.junit.Assert.*; +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertNotEquals; +import static org.junit.Assert.assertNotNull; +import static org.junit.Assert.assertTrue; +import static org.junit.Assert.fail; /** * @author hmusum @@ -26,13 +28,10 @@ public class ConfigSubscriptionTest { @Test public void testEquals() { ConfigSubscriber sub = new ConfigSubscriber(); - final String payload = "boolval true"; - ConfigSubscription a = ConfigSubscription.get(new ConfigKey<>(SimpletypesConfig.class, "test"), - sub, new RawSource(payload), new TimingValues()); - ConfigSubscription b = ConfigSubscription.get(new ConfigKey<>(SimpletypesConfig.class, "test"), - sub, new RawSource(payload), new TimingValues()); - ConfigSubscription c = ConfigSubscription.get(new ConfigKey<>(SimpletypesConfig.class, "test2"), - sub, new RawSource(payload), new TimingValues()); + + ConfigSubscription a = createSubscription(sub, "test"); + ConfigSubscription b = createSubscription(sub, "test"); + ConfigSubscription c = createSubscription(sub, "test2"); assertEquals(b, a); assertEquals(a, a); assertEquals(b, b); @@ -68,16 +67,13 @@ public class ConfigSubscriptionTest { ConfigSubscriber sub = new ConfigSubscriber(); ConfigHandle handle = sub.subscribe(SimpletypesConfig.class, "raw:boolval true", 10000); assertNotNull(handle); - sub.nextConfig(false); + assertTrue(sub.nextConfig(false)); assertTrue(handle.getConfig().boolval()); - //assertTrue(sub.getSource() instanceof RawSource); sub.close(); } - // Test that subscription is closed and subscriptionHandles is empty if we get an exception - // (only the last is possible to test right now). + // Test that exception is thrown if subscribe fails and that subscription is closed if we close the subscriber @Test - @Ignore public void testSubscribeWithException() { TestConfigSubscriber sub = new TestConfigSubscriber(); ConfigSourceSet configSourceSet = new ConfigSourceSet(Collections.singletonList("tcp/localhost:99999")); @@ -85,10 +81,16 @@ public class ConfigSubscriptionTest { sub.subscribe(SimpletypesConfig.class, "configid", configSourceSet, new TimingValues().setSubscribeTimeout(100)); fail(); } catch (ConfigurationRuntimeException e) { - assertEquals(0, sub.getSubscriptionHandles().size()); + sub.close(); + assertTrue(sub.getSubscriptionHandles().get(0).subscription().isClosed()); } } + private ConfigSubscription createSubscription(ConfigSubscriber sub, String configId) { + return ConfigSubscription.get(new ConfigKey<>(SimpletypesConfig.class, configId), + sub, new RawSource("boolval true"), new TimingValues()); + } + private static class TestConfigSubscriber extends ConfigSubscriber { List> getSubscriptionHandles() { return subscriptionHandles; -- cgit v1.2.3