name:
src/test/java/io/protobase/f7/spreadsheet/F7CodeExecutorGeneralConcatenationTest.java
-rw-r--r--
1932
1package io.protobase.f7.spreadsheet;
2
3import io.protobase.f7.errors.DivException;
4import io.protobase.f7.testutils.TestF7CodeExecutor;
5import org.junit.Test;
6import org.mockito.internal.verification.VerificationModeFactory;
7
8import static com.google.common.truth.Truth.assertThat;
9import static org.mockito.Mockito.verify;
10import static org.mockito.Mockito.verifyNoMoreInteractions;
11import static org.mockito.Mockito.when;
12
13public class F7CodeExecutorGeneralConcatenationTest extends TestF7CodeExecutor {
14 @Test
15 public void test_String() {
16 assertThat(run("= \"Hello\" & \"There\"")).isEqualTo("HelloThere");
17 assertThat(run("= \"\" & \"\"")).isEqualTo("");
18 assertThat(run("= \" \" & \" \"")).isEqualTo(" ");
19 }
20
21 @Test
22 public void test_Number() {
23 assertThat(run("= 0 & 1")).isEqualTo("01");
24 assertThat(run("= 0 & 0")).isEqualTo("00");
25 assertThat(run("= 131238 & 99281")).isEqualTo("13123899281");
26 assertThat(run("= 13.1238 & 99281")).isEqualTo("13.123899281");
27 assertThat(run("= 0.001 & 1.0")).isEqualTo("0.0011");
28 }
29
30 @Test
31 public void test_Boolean() {
32 assertThat(run("= TRUE & TRUE")).isEqualTo("TRUETRUE");
33 assertThat(run("= TRUE & FALSE")).isEqualTo("TRUEFALSE");
34 assertThat(run("= FALSE & FALSE")).isEqualTo("FALSEFALSE");
35 }
36
37 @Test
38 public void test_Error() {
39 assertThat(run("= 1 & #DIV/0!")).isEqualTo(new DivException());
40 }
41
42 @Test
43 public void test_ArrayLiteral() {
44 assertThat(run("= {1} & {2}")).isEqualTo("12");
45 assertThat(run("= {1, 2, 3} & {4, 5, 6}")).isEqualTo("14");
46 assertThat(run("= {1, #NUM!} & {4, #REF!}")).isEqualTo("14");
47 }
48
49 @Test
50 public void test_Blank() {
51 when(collateralLookup.apply(A1, M44_RANGE)).thenReturn(null);
52 assertThat(runWithLookup("= M44 & M44")).isEqualTo("");
53 verify(collateralLookup, VerificationModeFactory.times(2)).apply(A1, M44_RANGE);
54 verifyNoMoreInteractions(lookup);
55 }
56}