|
1 | 1 | package com.squareup.workflow1.ui
|
2 | 2 |
|
3 | 3 | import com.google.common.truth.Truth.assertThat
|
| 4 | +import com.squareup.workflow1.ui.ViewEnvironment.Companion.EMPTY |
4 | 5 | import com.squareup.workflow1.ui.ViewRegistry.Entry
|
5 | 6 | import org.junit.Test
|
6 | 7 | import kotlin.reflect.KClass
|
7 | 8 | import kotlin.test.assertFailsWith
|
8 | 9 | import kotlin.test.assertTrue
|
9 | 10 |
|
10 | 11 | @OptIn(WorkflowUiExperimentalApi::class)
|
11 |
| -internal class TypedViewRegistryTest { |
| 12 | +internal class ViewRegistryTest { |
12 | 13 |
|
13 | 14 | @Test fun `keys from bindings`() {
|
14 | 15 | val factory1 = TestEntry(FooRendering::class)
|
@@ -62,21 +63,61 @@ internal class TypedViewRegistryTest {
|
62 | 63 | @Test fun `merge into ViewEnvironment prefers right side`() {
|
63 | 64 | val factory1 = TestEntry(FooRendering::class)
|
64 | 65 | val factory2 = TestEntry(FooRendering::class)
|
65 |
| - val merged = (ViewEnvironment.EMPTY + ViewRegistry(factory1)) merge ViewRegistry(factory2) |
| 66 | + val merged = (EMPTY + ViewRegistry(factory1)) merge ViewRegistry(factory2) |
66 | 67 |
|
67 | 68 | assertThat(merged[ViewRegistry][FooRendering::class]).isSameInstanceAs(factory2)
|
68 | 69 | }
|
69 | 70 |
|
70 | 71 | @Test fun `merge of ViewEnvironments prefers right side`() {
|
71 | 72 | val factory1 = TestEntry(FooRendering::class)
|
72 | 73 | val factory2 = TestEntry(FooRendering::class)
|
73 |
| - val e1 = ViewEnvironment.EMPTY + ViewRegistry(factory1) |
74 |
| - val e2 = ViewEnvironment.EMPTY + ViewRegistry(factory2) |
| 74 | + val e1 = EMPTY + ViewRegistry(factory1) |
| 75 | + val e2 = EMPTY + ViewRegistry(factory2) |
75 | 76 | val merged = e1 + e2
|
76 | 77 |
|
77 | 78 | assertThat(merged[ViewRegistry][FooRendering::class]).isSameInstanceAs(factory2)
|
78 | 79 | }
|
79 | 80 |
|
| 81 | + @Test fun `plus of empty returns this`() { |
| 82 | + val reg = ViewRegistry(TestEntry(FooRendering::class)) |
| 83 | + assertThat(reg + ViewRegistry()).isSameInstanceAs(reg) |
| 84 | + } |
| 85 | + |
| 86 | + @Test fun `plus to empty returns other`() { |
| 87 | + val reg = ViewRegistry(TestEntry(FooRendering::class)) |
| 88 | + assertThat(ViewRegistry() + reg).isSameInstanceAs(reg) |
| 89 | + } |
| 90 | + |
| 91 | + @Test fun `merge of empty reg returns this`() { |
| 92 | + val reg = ViewRegistry(TestEntry(FooRendering::class)) |
| 93 | + assertThat(reg merge ViewRegistry()).isSameInstanceAs(reg) |
| 94 | + } |
| 95 | + |
| 96 | + @Test fun `merge to empty reg returns other`() { |
| 97 | + val reg = ViewRegistry(TestEntry(FooRendering::class)) |
| 98 | + assertThat(ViewRegistry() merge reg).isSameInstanceAs(reg) |
| 99 | + } |
| 100 | + |
| 101 | + @Test fun `env merge of empty reg returns this env`() { |
| 102 | + val env = EMPTY + ViewRegistry(TestEntry(FooRendering::class)) |
| 103 | + assertThat(env merge ViewRegistry()).isSameInstanceAs(env) |
| 104 | + } |
| 105 | + |
| 106 | + @Test fun `env merge of empty env returns other env`() { |
| 107 | + val env = EMPTY + ViewRegistry(TestEntry(FooRendering::class)) |
| 108 | + assertThat(env merge EMPTY).isSameInstanceAs(env) |
| 109 | + } |
| 110 | + |
| 111 | + @Test fun `env merge to empty env returns other env`() { |
| 112 | + val env = EMPTY + ViewRegistry(TestEntry(FooRendering::class)) |
| 113 | + assertThat(EMPTY merge env).isSameInstanceAs(env) |
| 114 | + } |
| 115 | + |
| 116 | + @Test fun `env plus empty reg returns env`() { |
| 117 | + val env = EMPTY + ViewRegistry(TestEntry(FooRendering::class)) |
| 118 | + assertThat(env + ViewRegistry()).isSameInstanceAs(env) |
| 119 | + } |
| 120 | + |
80 | 121 | private class TestEntry<T : Any>(
|
81 | 122 | override val type: KClass<in T>
|
82 | 123 | ) : Entry<T>
|
|
0 commit comments