summaryrefslogtreecommitdiffstats
path: root/config
diff options
context:
space:
mode:
authorHarald Musum <musum@oath.com>2017-11-24 07:40:29 +0100
committerHarald Musum <musum@oath.com>2017-11-24 07:40:29 +0100
commit30ca148be73f15ac05485ff6d09f8b44090959cd (patch)
treed90c6909e77be791930772858b499f14ffe5564f /config
parent30f6004e1a9ed864eff6edc76ed6b761633e4461 (diff)
Test that getting two updates before checking for new config uses the last
Diffstat (limited to 'config')
-rw-r--r--config/src/test/java/com/yahoo/config/subscription/ConfigSetSubscriptionTest.java28
1 files changed, 28 insertions, 0 deletions
diff --git a/config/src/test/java/com/yahoo/config/subscription/ConfigSetSubscriptionTest.java b/config/src/test/java/com/yahoo/config/subscription/ConfigSetSubscriptionTest.java
index 2aa7c66ce87..8acab56d838 100644
--- a/config/src/test/java/com/yahoo/config/subscription/ConfigSetSubscriptionTest.java
+++ b/config/src/test/java/com/yahoo/config/subscription/ConfigSetSubscriptionTest.java
@@ -130,4 +130,32 @@ public class ConfigSetSubscriptionTest {
assertEquals(hS.getConfig().stringVal(), "new StringVal");
}
+ @Test
+ public void requireThatWeGetLatestConfigWhenTwoUpdatesBeforeClientChecks() {
+ ConfigSet myConfigs = new ConfigSet();
+ AppConfig.Builder a0builder = new AppConfig.Builder().message("A message, 1");
+ myConfigs.addBuilder("app/0", a0builder);
+ ConfigSubscriber subscriber = new ConfigSubscriber(myConfigs);
+ ConfigHandle<AppConfig> hA0 = subscriber.subscribe(AppConfig.class, "app/0");
+
+ assertTrue(subscriber.nextConfig(0));
+ assertTrue(hA0.isChanged());
+ assertEquals(hA0.getConfig().message(), "A message, 1");
+
+ assertFalse(subscriber.nextConfig(10));
+ assertFalse(hA0.isChanged());
+ assertEquals(hA0.getConfig().message(), "A message, 1");
+
+ //Reconfigure two times in a row
+ a0builder.message("A new message, 2");
+ subscriber.reload(1);
+ a0builder.message("An even newer message, 3");
+ subscriber.reload(2);
+
+ // Should pick up the last one
+ assertTrue(subscriber.nextConfig(0));
+ assertTrue(hA0.isChanged());
+ assertEquals(hA0.getConfig().message(), "An even newer message, 3");
+ }
+
}