@Before public void setup() { ConfigFactory config = mock(ConfigFactory.class); when(config.getDoubleProperty(Configs.CONSUMER_RATE_CONVERGENCE_FACTOR)).thenReturn(0.5); when(config.getIntProperty(Configs.CONSUMER_RATE_LIMITER_SLOW_MODE_DELAY)).thenReturn(1); when(config.getIntProperty(Configs.CONSUMER_RATE_LIMITER_HEARTBEAT_MODE_DELAY)).thenReturn(60); subscription = subscription("group.topic", "subscription").withSubscriptionPolicy( SubscriptionPolicy.Builder.subscriptionPolicy().withRate(200).build() ).build(); NegotiatedMaxRateProvider maxRateProvider = mock(NegotiatedMaxRateProvider.class); when(maxRateProvider.get()).thenReturn(100D); calculator = new OutputRateCalculator(config, maxRateProvider); }
@Test public void shouldApplyPatchToSubscriptionPolicy() { //given PatchData patch = patchData().set("rate", 8).build(); //when SubscriptionPolicy subscription = subscriptionPolicy() .withRate(1) .applyPatch(patch).build(); //then assertThat(subscription.getRate()).isEqualTo(8); }
@Test public void shouldIgnoreUnknownFields() { //given SubscriptionPolicy policy = subscriptionPolicy().withRate(10).build(); PatchData patch = patchData().set("unknown", 10).set("messageTtl", 30).build(); // when SubscriptionPolicy patched = Patch.apply(policy, patch); // then assertThat(patched.getMessageTtl()).isEqualTo(30); }
public SubscriptionBuilder withRequestTimeout(int timeout) { SubscriptionPolicy policy = this.serialSubscriptionPolicy; this.serialSubscriptionPolicy = SubscriptionPolicy.Builder.subscriptionPolicy().withRate(policy.getRate()) .withMessageTtl(policy.getMessageTtl()).withMessageBackoff(policy.getMessageBackoff()) .withRequestTimeout(timeout).build(); return this; }
public SubscriptionBuilder withRequestTimeout(int timeout) { SubscriptionPolicy policy = this.serialSubscriptionPolicy; this.serialSubscriptionPolicy = SubscriptionPolicy.Builder.subscriptionPolicy().withRate(policy.getRate()) .withMessageTtl(policy.getMessageTtl()).withMessageBackoff(policy.getMessageBackoff()) .withRequestTimeout(timeout).build(); return this; }