Skip to content

Commit 30661d7

Browse files
committed
Added basic integration tests
1 parent 1758fab commit 30661d7

File tree

4 files changed

+102
-5
lines changed

4 files changed

+102
-5
lines changed

Makefile

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
# Variables
2+
VERSION := 1.0-SNAPSHOT
3+
PACKAGE := target/spawn-java-demo-${VERSION}-shaded.jar
4+
5+
clean:
6+
mvn clean
7+
8+
build: clean
9+
mvn compile
10+
11+
install:
12+
mvn install
13+
14+
test: run-dependencies
15+
mvn test
16+
17+
run-dependencies:
18+
docker-compose up -d && docker-compose logs -f
19+
20+
stop-dependencies:
21+
docker-compose down

docker-compose.yaml

Lines changed: 43 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,43 @@
1+
version: "3.8"
2+
services:
3+
mariadb:
4+
image: mariadb
5+
environment:
6+
MYSQL_ROOT_PASSWORD: admin
7+
MYSQL_DATABASE: eigr-functions-db
8+
MYSQL_USER: admin
9+
MYSQL_PASSWORD: admin
10+
volumes:
11+
- mariadb:/var/lib/mysql
12+
ports:
13+
- "3307:3306"
14+
nats:
15+
image: nats:0.8.0
16+
entrypoint: "/gnatsd -DV"
17+
ports:
18+
- "8222:8222"
19+
- "4222:4222"
20+
spawn-proxy:
21+
build:
22+
context: https://github.com/eigr/spawn.git#main
23+
dockerfile: ./Dockerfile-proxy
24+
restart: always
25+
network_mode: "host"
26+
environment:
27+
SPAWN_USE_INTERNAL_NATS: "true"
28+
SPAWN_PUBSUB_ADAPTER: nats
29+
SPAWN_STATESTORE_KEY: 3Jnb0hZiHIzHTOih7t2cTEPEpY98Tu1wvQkPfq/XwqE=
30+
PROXY_APP_NAME: spawn
31+
PROXY_CLUSTER_STRATEGY: gossip
32+
PROXY_DATABASE_PORT: 3307
33+
PROXY_DATABASE_TYPE: mariadb
34+
PROXY_HTTP_PORT: 9003
35+
USER_FUNCTION_PORT: 8091
36+
depends_on:
37+
- mariadb
38+
- nats
39+
networks:
40+
mysql-compose-network:
41+
driver: bridge
42+
volumes:
43+
mariadb:

src/main/java/io/eigr/spawn/api/Spawn.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -85,7 +85,7 @@ public void start() throws Exception {
8585
}
8686

8787
private void startServer() throws IOException {
88-
HttpServer httpServer = HttpServer.create(new InetSocketAddress("127.0.0.1", this.port), 0);
88+
HttpServer httpServer = HttpServer.create(new InetSocketAddress(this.host, this.port), 0);
8989
httpServer.createContext(HTTP_ACTORS_ACTIONS_URI, new ActorServiceHandler(this, this.entities));
9090
if (this.optionalExecutor.isPresent()) {
9191
httpServer.setExecutor(this.optionalExecutor.get());
@@ -228,7 +228,7 @@ public static final class SpawnSystem {
228228
private int proxyPort = 9001;
229229
private String system = "spawn-system";
230230

231-
private Optional<Executor> optionalExecutor;
231+
private Optional<Executor> optionalExecutor = Optional.empty();
232232

233233
public SpawnSystem create(String system) {
234234
this.system = system;
@@ -256,7 +256,7 @@ public SpawnSystem withProxyPort(int port) {
256256
}
257257

258258
public SpawnSystem withHttpHandlerExecutor(Executor executor) {
259-
this.optionalExecutor = Optional.ofNullable(executor);
259+
this.optionalExecutor = Optional.of(executor);
260260
return this;
261261
}
262262

Lines changed: 35 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,45 @@
11
package io.eigr.spawn;
22

3+
import io.eigr.spawn.api.Spawn;
4+
import io.eigr.spawn.api.actors.ActorRef;
5+
import io.eigr.spawn.java.test.domain.Actor;
6+
import io.eigr.spawn.test.actors.JoeActor;
7+
import org.junit.Before;
38
import org.junit.Test;
49

5-
import static org.junit.Assert.assertTrue;
10+
import java.util.Optional;
11+
12+
import static org.junit.Assert.assertEquals;
13+
import static org.junit.Assert.assertNotNull;
614

715
public class SpawnTest {
16+
17+
private Spawn spawnSystem;
18+
19+
@Before
20+
public void before() throws Exception {
21+
spawnSystem = new Spawn.SpawnSystem()
22+
.create("spawn-system")
23+
.withPort(8091)
24+
.withProxyPort(9003)
25+
.addActor(JoeActor.class)
26+
.build();
27+
28+
spawnSystem.start();
29+
}
30+
831
@Test
932
public void testApp() throws Exception {
10-
assertTrue(true);
33+
ActorRef joeActor = spawnSystem.createActorRef("spawn-system", "test_joe");
34+
35+
Actor.Request msg = Actor.Request.newBuilder()
36+
.setLanguage("erlang")
37+
.build();
38+
39+
Actor.Reply reply =
40+
(Actor.Reply) joeActor.invoke("setLanguage", msg, Actor.Reply.class, Optional.empty());
41+
42+
assertNotNull(reply);
43+
assertEquals("Hello From Java", reply.getResponse());
1144
}
1245
}

0 commit comments

Comments
 (0)