Skip to content

Commit fb786ec

Browse files
committed
test: add simple integration tests
1 parent 7d08a9a commit fb786ec

File tree

4 files changed

+142
-0
lines changed

4 files changed

+142
-0
lines changed
Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
package com.flowingcode.addons.simpletimer.integration;
2+
3+
public interface IntegrationCallables {
4+
5+
void setStartTime(Integer startTime);
6+
7+
void setEndTime(Integer endTime);
8+
9+
void start();
10+
11+
void pause();
12+
13+
void reset();
14+
15+
boolean isRunning();
16+
17+
}
Lines changed: 53 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,53 @@
1+
package com.flowingcode.addons.simpletimer.integration;
2+
3+
import com.flowingcode.vaadin.addons.simpletimer.SimpleTimer;
4+
import com.vaadin.flow.component.ClientCallable;
5+
import com.vaadin.flow.component.html.Div;
6+
import com.vaadin.flow.router.Route;
7+
8+
@Route("/it")
9+
public class IntegrationView extends Div implements IntegrationCallables {
10+
11+
private SimpleTimer timer = new SimpleTimer();
12+
13+
public IntegrationView() {
14+
add(timer);
15+
}
16+
17+
@Override
18+
@ClientCallable
19+
public void setStartTime(Integer startTime) {
20+
timer.setStartTime(startTime);
21+
}
22+
23+
@Override
24+
@ClientCallable
25+
public void setEndTime(Integer endTime) {
26+
timer.setEndTime(endTime);
27+
}
28+
29+
@Override
30+
@ClientCallable
31+
public void start() {
32+
timer.start();
33+
}
34+
35+
@Override
36+
@ClientCallable
37+
public void pause() {
38+
timer.pause();
39+
}
40+
41+
@Override
42+
@ClientCallable
43+
public void reset() {
44+
timer.reset();
45+
}
46+
47+
@Override
48+
@ClientCallable
49+
public boolean isRunning() {
50+
return timer.isRunning();
51+
}
52+
53+
}
Lines changed: 57 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,57 @@
1+
package com.flowingcode.addons.simpletimer.integration;
2+
3+
import static org.hamcrest.MatcherAssert.assertThat;
4+
import static org.hamcrest.Matchers.equalTo;
5+
import static org.hamcrest.Matchers.greaterThan;
6+
import static org.hamcrest.Matchers.lessThan;
7+
import static org.hamcrest.Matchers.nullValue;
8+
import static org.junit.Assert.assertFalse;
9+
import static org.junit.Assert.assertTrue;
10+
import com.flowingcode.vaadin.testbench.rpc.HasRpcSupport;
11+
import org.junit.Test;
12+
13+
public class SimpleIT extends AbstractViewTest implements HasRpcSupport {
14+
15+
IntegrationCallables $server = createCallableProxy(IntegrationCallables.class);
16+
17+
public SimpleIT() {
18+
super("it");
19+
}
20+
21+
private Double currentTime() {
22+
return $(SimpleTimerElement.class).first().currentTime();
23+
}
24+
25+
@Test
26+
public void countDown() {
27+
assertThat(currentTime(), nullValue());
28+
assertFalse($server.isRunning());
29+
30+
$server.setStartTime(1);
31+
assertThat(currentTime(), equalTo(1.0));
32+
33+
$server.start();
34+
assertTrue($server.isRunning());
35+
double t0 = currentTime();
36+
double t1 = currentTime();
37+
assertThat(t0, lessThan(1.0));
38+
assertThat(t1, lessThan(t0));
39+
}
40+
41+
@Test
42+
public void countUp() {
43+
assertThat(currentTime(), nullValue());
44+
assertFalse($server.isRunning());
45+
46+
$server.setEndTime(1);
47+
assertThat(currentTime(), equalTo(0.0));
48+
49+
$server.start();
50+
assertTrue($server.isRunning());
51+
double t0 = currentTime();
52+
double t1 = currentTime();
53+
assertThat(t0, greaterThan(0.0));
54+
assertThat(t1, greaterThan(t0));
55+
}
56+
57+
}
Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
package com.flowingcode.addons.simpletimer.integration;
2+
3+
import com.vaadin.testbench.TestBenchElement;
4+
import com.vaadin.testbench.elementsbase.Element;
5+
import java.util.Optional;
6+
7+
@Element("simple-timer")
8+
public class SimpleTimerElement extends TestBenchElement {
9+
10+
Double currentTime() {
11+
Number time = (Number) executeScript("return arguments[0].currentTime", this);
12+
return Optional.ofNullable(time).map(Number::doubleValue).orElse(null);
13+
}
14+
15+
}

0 commit comments

Comments
 (0)