Skip to content
This repository was archived by the owner on Sep 28, 2022. It is now read-only.
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@
build
out
.idea
bin
*.iml
*.class
bin
Expand Down
87 changes: 56 additions & 31 deletions .travis.yml
Original file line number Diff line number Diff line change
@@ -1,17 +1,11 @@

env:
global:
# BINTRAY_USER
- secure: "LxONQZ8tHhxTqgu+kqx9fMCubCfTQHZsy/3ibE+l72xG8sOAYfj4hB5k1p4kklnv3skeFQEiL6B++B2qRITOEAPRdD8FExkc+UF/TM1rY5aUtjIjoA3uH4n9hYjHirTO5qNKf4KxDr1Zbcn4ISGebJ0EYwE0SG/ptrd06wPp1G8AHshc8XaZgen6gDaik66OWpQkOkmGsRz2EPmIBVgo7L2LGK21DSxE4/PTo+ou0WYCyxyyWSKLTLt1xZpt9LOtk7IckrHl+Nenl6IbV/CjHb3+5vwdifyFQd+K6AVe32iTIVjdxj7rDhEHYD0EqKb79ey+u8p9HquLnGH03gcVBeFQu/qhhQStsiwrD/S9c8jwBjWOOUnVI4bEbqjqxFaRlPfVnRaAjQZLRKHdqxyTJCdC2Ls79LmkqSCyTxM7WBwwgu4Slf6RJSbKJb5naHYlwDuKPbeyHLAYrxgjEHC28bxQiTr5wwBWxE9BLxUcnkFAXzsy3qE74FQOIjvQbtrruLIOGwRGRYtzyfygGA3MfTHug6JwZGngqFf3k+kbznE8fZe7zxMwT63P6/54rR5fU/plLoTNFqdQsZGAfGOSYuHIEzWXOkWxffqsOwxPa1VxQTLD32O95oBcrcvmw4toC2NeFTe/+zZRMfGMbu7QIi0AL3qFpky3j12zcyA/M2I="
# BINTRAY_KEY
- secure: "Iqn4ImAwFmQeoXXDb5JOsfcunSiSeLvdp4+AEsIeniMhpIk++ZJPDSxecC+NrvndTrxOXVqHEsFUfHnZYvPHMuvg9nhXvz/rmmyYH0hZqkKg2q2qM+Sz2UJBCvs6D1sJv3ZEVi8d6fVx5bbKXMzSE023XFBBK7l8nBsG5ObXBOzTzrus9UP+fk4FXif/QKJNcUSN7rLejUIxMCk36gMQYqYGiiqL3VE60aTpaUh7Vqj/8nCEPcO3K3gXTVybcGBcmsvinV5YEc+5s5ue8eX10ONY0oYF5GFd7aEsrKEFzT2d7MVq0a29cH1rWrxt6q7vXGZNKAdAQrDyRZUz9rMFtqH+2xOgagm22UiUYNlzrn2eDYRBd08X0y043gumdgmOq/CsyaI5bcUSKMr+rsZ2XIzBjefl8MU0xBhtKMO9g9WRfGBxjRbdg0ivRQoVGJbcUXTDl2WrLMgMjt8DT4nQP+PHdIV2FjZVNioqucqmEzfHIJt+hiw7EonGDnZ9uqkW6hm6b4JpGr5QF1yY6kKVCUQxLueUBAVdiZpULdevL7uYEUzdWIES2wTFE7LaWpHqnCOHYVpkIQpdole6+R0OhINhSHK0FW858xhZ2QGjtL1SSh5yzK4th6dpGKCiwMUSGSj5frpIeWPi+GqYoUQz+TvMGLGG2XGfihx74kQE0FA="
- AWS_ACCESS_KEY_ID=AKIAIYAXFUAHXOWP2MJA
# AWS_SECRET_ACCESS_KEY
- secure: "dIcQzFpHKRf92cAiMA+SYsudtHWNcbYadVDb7zlJayWGUGy0i4CGwwOoOOrUcWgHxYhdN9XGwvFJTSswjHLRiHEyPFBwW8x/VfaCRS+jAcblMXyWNajvm0930S/3fRv5LA+4UKNmeXMuCGSf35ZqyEIEeuThkIomYvB/tBD1wcMpBUtQfmilLm3sUTaGUnFB651jBHshlYOZ8BAGLLmX1PAfT1wCrpVcrjq5kayNOIilJkwKGSr6q9C0p7+ULNZ4bHsATKLlYNs7Xcs+9a66p1EtKetP72DQsHrr8x3wB2Hhk3U425kmjIoE3gYnF7x3h3EpO5m0rGessbgdRF1SF7XK7Bsj4ukLb4HoktA8G7734ox4848RpH60aKUHRCsiebX7JKgJe1eEwU5BZK8+PFPGH6bI1YG1HQNqthzotTHFXu058uMHnyLv2PmDWWEYMM79fCyuRo8gJJ8GJhDgaGLgtizzEb6grcNW+QwunjA6nP4o7F9o+9b3lfGlsgL595V/CeWLNnHvENkSr67RN2NkDZm6q6EHbOk8AWtQc24mVawCwCbcJjp0sPkbQdCHUXSBNXjdwrvJLA3h94A2uVEmrV7mzMdfj+i9X3IS/HXRLeQk6Ivq2s/b1W6c7rBfz4zZUO7Uu5iYpVzT71yNFra13JkW3REFgHgETEvGkko="


sudo: true

---
# -----------------
# YAML Templates
# -----------------

# ------------------------
# Jobs configuration
# ------------------------
jobs:
include:
- stage: Tests
Expand All @@ -21,8 +15,8 @@ jobs:
node_js: 10

before_script:
- npm run doc-prepare
- npm run --prefix doc/framework clone-repos
- cd kuzzle-sdk-java && npm run doc-prepare
- npm run --prefix doc/framework clone-repos && cd -
script:
- gem install typhoeus
- HYDRA_MAX_CONCURRENCY=20 npm run --prefix doc/framework dead-links
Expand All @@ -48,17 +42,17 @@ jobs:
- cd $TRAVIS_BUILD_DIR/kuzzle-sdk-java
- gradle assemble
script:
- npm run doc-prepare
- npm run doc-build
- cd kuzzle-sdk-java && npm run doc-prepare
- npm run doc-build && cd -

deploy:
provider: script
script:
- npm run doc-upload
- cd kuzzle-sdk-java && npm run doc-upload && cd -
skip_cleanup: true

after_deploy:
- npm run doc-cloudfront
- cd kuzzle-sdk-java && npm run doc-cloudfront && cd -

- stage: Deployment Doc Prod
name: Deploy docs.kuzzle.io
Expand All @@ -83,17 +77,48 @@ jobs:
- cd $TRAVIS_BUILD_DIR/kuzzle-sdk-java
- gradle assemble
script:
bash gradlew test jacocoTestReport

notifications:
email: false

- gradle check
after_success:
- bash <(curl -s https://codecov.io/bash)

deploy:
provider: script
script: ./gradlew bintrayUpload
skip_cleanup: true
on:
condition: $TRAVIS_BRANCH = master
# ---------------------------------------
# Builds
# ---------------------------------------
- stage: Builds
name: Build SDK Java
language: java
jdk: oraclejdk8
sudo: false
before_cache:
- rm -f $HOME/.gradle/caches/modules-2/modules-2.lock
- rm -fr $HOME/.gradle/caches/*/plugin-resolution/
cache:
directories:
- $HOME/.gradle/caches/
- $HOME/.gradle/wrapper/
install:
- cd $TRAVIS_BUILD_DIR/kuzzle-sdk-java
- gradle assemble
- cd $TRAVIS_BUILD_DIR/kuzzle-sdk-java
- gradle assemble
script:
- gradle build

# ------------------------
# Stages configuration
# ------------------------
stages:
- name: Unit Tests
if: type =~ /(cron|push|pull_request)/ AND branch =~ /^master|[0-9]+-(dev|stable)$/
- name: Builds
if: type =~ /(cron|push|pull_request)/ AND branch =~ /^master|[0-9]+-(dev|stable)$/

# ---------------------------------------
# Notifications
# ---------------------------------------
notifications:
slack:
rooms:
- secure: "ACjz4TJEYBEzmwVOYrCNnr4+jC0FaX+qh150QacYGIgaQYL+U3xLEQmWNlZ3oxaPPMDAk42m+diHolqNwh6qsOWaPSWRlGfLKhHLSzRI98bhF7HQ+3eLMYmx7y7SKwRzyRjus0jgxp0Kc2mq0nhKqv+7rarQtIgWlC1PLrzZ35CUbUlqYSoeYAlXoyDB1eZgYsvjt+eC5yCvGePsfKbupWC2/hIVl+qZ+9AhVmOfiMv7daFW29Vu300aoY+0IqwX7jHGcmHn/7QCRsx0IBy/SL24TzfSV9SUSnbjK4fTrcrhjYDEZdH1lpvDtvr50GgkrTjy1wPVz8XIyCZ7LZolylkx+nR1MWyvum20QRFub2Qhz/+rS+OFiQZ8H01BPuklLUTSQhBksfpGBck3d2yNLiTqGEVWYTnZ9mkCnMQ3BzJXEF04KLHG7wYn2rk6wjPghVmFQH5GMsxM5v33CFgcNzp6lRJOX9CmjZosck6o9SA0WlazHH/CLWWKk1wrQ1ygDayW5m+N/o58UIxgW2LIUlp4tV1z/bRtO2yTd020yWchlKPVmf1A5OMfigJNMRsQGNZNadS7qA2M394OJw3/Hg+0EVF8gai/V8FRijmkxmhYyCIYMcjaGwx8JxfoMrRKcM76haBAhg0JQxsSVKzyXfONGzd5DXjcxSGZ2wuEdu0="
on_success: never
on_failure: always
23 changes: 23 additions & 0 deletions kuzzle-sdk-java/.project
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
<?xml version="1.0" encoding="UTF-8"?>
<projectDescription>
<name>kuzzle-sdk-java</name>
<comment>Project kuzzle-sdk-java created by Buildship.</comment>
<projects>
</projects>
<buildSpec>
<buildCommand>
<name>org.eclipse.jdt.core.javabuilder</name>
<arguments>
</arguments>
</buildCommand>
<buildCommand>
<name>org.eclipse.buildship.core.gradleprojectbuilder</name>
<arguments>
</arguments>
</buildCommand>
</buildSpec>
<natures>
<nature>org.eclipse.jdt.core.javanature</nature>
<nature>org.eclipse.buildship.core.gradleprojectnature</nature>
</natures>
</projectDescription>
File renamed without changes.
Original file line number Diff line number Diff line change
@@ -0,0 +1,151 @@
package io.kuzzle.test.CoreClasses.TaskTest;

import io.kuzzle.sdk.CoreClasses.Task;
import org.junit.Assert;
import org.junit.Test;

import java.util.concurrent.CompletableFuture;
import java.util.concurrent.CountDownLatch;
import java.util.concurrent.atomic.AtomicBoolean;
import java.util.concurrent.atomic.AtomicReference;

import static org.mockito.Matchers.any;
import static org.mockito.Mockito.*;

public class TaskTests {

@Test
public void constructorTest() {
TestableTask<Object> task = new TestableTask<>();
Assert.assertNotNull(task.getAtomicReference());
Assert.assertEquals(
AtomicReference.class,
task.getAtomicReference().getClass()
);
Assert.assertNotNull(task.getCountDownLatch());
Assert.assertEquals(
CountDownLatch.class,
task.getCountDownLatch().getClass()
);
Assert.assertNotNull(task.getFuture());
}

@Test
public void getFutureTest() {
Task<Object> task = new Task<>();

Assert.assertEquals(
CompletableFuture.class,
task.getFuture().getClass()
);
}

@Test
public void setExceptionTest() {
TestableTask<Object> task = new TestableTask<>();
task.applyMockFuture();

task.setException(new Exception("foobar"));

verify(
task.mockedFuture,
times(1)
).completeExceptionally(any(Exception.class));
}

@Test
public void isCancelledTest() {
TestableTask<Object> task = new TestableTask<>();
task.applyMockFuture();

when(task.mockedFuture.isCancelled())
.thenReturn(true);

Assert.assertTrue(task.isCancelled());

verify(
task.mockedFuture,
times(1)
).isCancelled();
}

@Test
public void isDoneTest() {
TestableTask<Object> task = new TestableTask<>();
task.applyMockFuture();

when(task.mockedFuture.isDone())
.thenReturn(true);

Assert.assertTrue(task.isDone());

verify(
task.mockedFuture,
times(1)
).isDone();
}

@Test
public void isCompletedExceptionallyTest() {
TestableTask<Object> task = new TestableTask<>();
task.applyMockFuture();

when(task.mockedFuture.isCompletedExceptionally())
.thenReturn(true);

Assert.assertTrue(task.isCompletedExceptionally());

verify(
task.mockedFuture,
times(1)
).isCompletedExceptionally();
}

@Test
public void setCancelledTest() {
TestableTask<Object> task = new TestableTask<>();
task.applyMockFuture();

task.setCancelled(true);

verify(
task.mockedFuture,
times(1)
).cancel(anyBoolean());
}

@Test
public void triggerTest() {
Task task = new Task();

final AtomicBoolean success = new AtomicBoolean(false);

CompletableFuture taskChain = task.getFuture().thenRun(() -> {
success.set(true);
});

task.trigger();

taskChain.join();

Assert.assertTrue(success.get());

}

@Test
public void triggerWithObjectTest() {
Task<String> task = new Task();

final AtomicBoolean success = new AtomicBoolean(false);

CompletableFuture taskChain = task.getFuture().thenAccept((str) -> {
success.set(str.equals("foobar"));
});

task.trigger("foobar");

taskChain.join();

Assert.assertTrue(success.get());
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
package io.kuzzle.test.CoreClasses.TaskTest;

import io.kuzzle.sdk.CoreClasses.Task;

import java.util.concurrent.CompletableFuture;
import java.util.concurrent.CountDownLatch;
import java.util.concurrent.atomic.AtomicReference;

import static org.mockito.Mockito.mock;

public class TestableTask<T> extends Task<T> {
public CountDownLatch mockedCountDownLatch = mock(CountDownLatch.class);
public CompletableFuture<T> mockedFuture = mock(CompletableFuture.class);

public TestableTask() {
super();
}

public void applyMockFuture() {
super.future = mockedFuture;
}

public CountDownLatch getCountDownLatch() {
return super.countDownLatch;
}

public AtomicReference<T> getAtomicReference() {
return super.atomicReference;
}


}
Loading