com.spotify.mobius.Next.dispatch()方法的使用及代码示例

x33g5p2x  于2022-01-25 转载在 其他  
字(5.1k)|赞(0)|评价(0)|浏览(130)

本文整理了Java中com.spotify.mobius.Next.dispatch()方法的一些代码示例,展示了Next.dispatch()的具体用法。这些代码示例主要来源于Github/Stackoverflow/Maven等平台,是从一些精选项目中提取出来的代码,具有较强的参考意义,能在一定程度帮忙到你。Next.dispatch()方法的具体详情如下:
包路径:com.spotify.mobius.Next
类名称:Next
方法名:dispatch

Next.dispatch介绍

[英]Create a Next that doesn't update the model but dispatches the supplied effects.
[中]创建一个不会更新模型但会分派提供的效果的下一个。

代码示例

代码示例来源:origin: spotify/mobius

  1. @SuppressWarnings("unused")
  2. private Next<?, Number> canInferFromVarargOnlyEffects() {
  3. return dispatch(effects((short) 1, 2, (long) 3));
  4. }

代码示例来源:origin: spotify/mobius

  1. @SuppressWarnings("unused")
  2. private Next<?, Number> canInferFromVarargOnlyEffectsSingle() {
  3. return dispatch(effects((short) 1));
  4. }

代码示例来源:origin: spotify/mobius

  1. @Nonnull
  2. @Override
  3. public Next<M, F> handleInnerEffects(M model, boolean modelUpdated, Set<FI> innerEffects) {
  4. if (innerEffects.isEmpty()) {
  5. return modelUpdated ? Next.<M, F>next(model) : Next.<M, F>noChange();
  6. }
  7. Set<F> effects = new HashSet<>();
  8. for (FI innerEffect : innerEffects) {
  9. F outerEffect = checkNotNull(f).apply(innerEffect);
  10. effects.add(checkNotNull(outerEffect));
  11. }
  12. if (modelUpdated) {
  13. return Next.next(model, effects);
  14. } else {
  15. return Next.dispatch(effects);
  16. }
  17. }
  18. };

代码示例来源:origin: spotify/mobius

  1. @Test
  2. public void testHasEffectsWithConcreteInstancesOutOfOrder() throws Exception {
  3. next = dispatch(effects(94, 74, 65));
  4. matcher = hasEffects(65, 94, 74);
  5. assertTrue(matcher.matches(next));
  6. }
  7. }

代码示例来源:origin: spotify/mobius

  1. @Test
  2. public void testHasEffectsWithConcreteInstancesPartialMatch() throws Exception {
  3. next = dispatch(effects(94, 74));
  4. matcher = hasEffects(94);
  5. assertTrue(matcher.matches(next));
  6. }

代码示例来源:origin: spotify/mobius

  1. @Test
  2. public void testHasEffectsWithConcreteInstancesMismatch() throws Exception {
  3. next = dispatch(effects(94));
  4. matcher = hasEffects(74);
  5. assertFalse(matcher.matches(next));
  6. }

代码示例来源:origin: spotify/mobius

  1. @Test
  2. public void testHasEffectsWithConcreteInstancesMatch() throws Exception {
  3. next = dispatch(effects(94));
  4. matcher = hasEffects(94);
  5. assertTrue(matcher.matches(next));
  6. }

代码示例来源:origin: spotify/mobius

  1. @Test
  2. public void testHasNoModel() throws Exception {
  3. next = dispatch(effects(1, 2));
  4. matcher = hasNoModel();
  5. assertTrue(matcher.matches(next));
  6. matcher.describeMismatch(next, desc);
  7. assertEquals("no model", desc.toString());
  8. }

代码示例来源:origin: spotify/mobius

  1. @Test
  2. public void testHasNoEffectsMismatch() throws Exception {
  3. next = dispatch(effects(1, 2, 3));
  4. matcher = hasNoEffects();
  5. assertFalse(matcher.matches(next));
  6. matcher.describeMismatch(next, desc);
  7. assertEquals("has effects", desc.toString());
  8. }

代码示例来源:origin: spotify/mobius

  1. @Test
  2. public void testHasEffectsSpecific() throws Exception {
  3. next = dispatch(effects(1, 3, 2));
  4. matcher = hasEffects(hasItems(1, 2, 3));
  5. assertTrue(matcher.matches(next));
  6. matcher.describeMismatch(next, desc);
  7. assertEquals("has effects: ", desc.toString());
  8. }

代码示例来源:origin: spotify/mobius

  1. @Test
  2. public void testHasEffectsSpecificButWrong() throws Exception {
  3. next = dispatch(effects(1));
  4. matcher = hasEffects(hasItems(2));
  5. assertFalse(matcher.matches(next));
  6. matcher.describeMismatch(next, desc);
  7. assertEquals("bad effects: a collection containing <2> was <1>", desc.toString());
  8. }

代码示例来源:origin: spotify/mobius

  1. @Test
  2. public void testHasNothing() throws Exception {
  3. matcher = hasNothing();
  4. assertFalse(matcher.matches(null));
  5. assertFalse(matcher.matches(next("1234")));
  6. assertFalse(matcher.matches(dispatch(effects("f1"))));
  7. assertFalse(matcher.matches(next("123", effects("f1"))));
  8. assertTrue(matcher.matches(noChange()));
  9. }

代码示例来源:origin: spotify/mobius

  1. @Test
  2. public void nextEffectsOnlyHasEffects() throws Exception {
  3. Next<String, String> next = dispatch(effects("foo"));
  4. assertFalse(next.hasModel());
  5. assertTrue(next.hasEffects());
  6. }

代码示例来源:origin: spotify/mobius

  1. @Test
  2. public void canMergeInnerEffects() throws Exception {
  3. Next<String, String> outerNext = Next.next("m", effects("f1", "f2"));
  4. Next<?, String> innerNext = dispatch(effects("f2", "f3"));
  5. Next<String, String> merged =
  6. Next.next(
  7. outerNext.modelOrElse("fail"), unionSets(innerNext.effects(), outerNext.effects()));
  8. assertEquals(Next.next("m", effects("f1", "f2", "f3")), merged);
  9. }

代码示例来源:origin: spotify/mobius

  1. @Test
  2. public void dispatchEffectCallsInnerEffectHandler() throws Exception {
  3. InnerUpdate<String, String, String, String, String, String> innerUpdate =
  4. InnerUpdate.<String, String, String, String, String, String>builder()
  5. .modelExtractor(m -> m)
  6. .eventExtractor(e -> e)
  7. .innerUpdate((model, event) -> dispatch(effects("1", "2", "3")))
  8. .modelUpdater((m, mi) -> mi)
  9. .innerEffectHandler((model, updated, effects) -> Next.next("effect_handler"))
  10. .build();
  11. Next<String, String> next = innerUpdate.update("model", "event");
  12. assertThat(next, NextMatchers.<String, String>hasModel("effect_handler"));
  13. }

代码示例来源:origin: spotify/mobius

  1. Next<String, String> p2 = Next.dispatch(effects("a", "c", "b"));
  2. Next<String, String> p3 = Next.dispatch(effects("b", "a", "c"));
  3. Next<String, String> p4 = Next.dispatch(ImmutableUtil.setOf("c", "b", "a"));

相关文章