From a4bd2753b7731b658f19c9e9368c6f2f05e2e0d0 Mon Sep 17 00:00:00 2001 From: Tamas Bunth <tamas.bunth@collabora.co.uk> Date: Sun, 18 Mar 2018 01:41:36 +0100 Subject: [PATCH] Fix REST API tests --- .../mobildata/client/MobilDataClient.kt | 19 +++++++++++++++++++ src/main/kotlin/mobildata/model/User.kt | 2 +- .../kotlin/mobildata/ApiApplicationTests.kt | 17 +++++++++++++++++ 3 files changed, 37 insertions(+), 1 deletion(-) create mode 100644 src/main/kotlin/mobildata/client/MobilDataClient.kt diff --git a/src/main/kotlin/mobildata/client/MobilDataClient.kt b/src/main/kotlin/mobildata/client/MobilDataClient.kt new file mode 100644 index 0000000..05abb68 --- /dev/null +++ b/src/main/kotlin/mobildata/client/MobilDataClient.kt @@ -0,0 +1,19 @@ +package mobildata.client + +import feign.Headers +import feign.Param +import feign.RequestLine +import mobildata.model.User +import mobildata.model.inout.Login +import mobildata.model.inout.MobilDataIn +import mobildata.model.inout.Register +import org.springframework.web.bind.annotation.RequestBody +import org.springframework.web.bind.annotation.RequestHeader +import org.springframework.web.bind.annotation.RequestMapping + +@Headers("Content-Type: application/json") +interface MobilDataClient { + @RequestLine("POST /api/data") + fun dataInput(@Param("Authorization") token:String, @RequestBody mobilIn: MobilDataIn) + +} diff --git a/src/main/kotlin/mobildata/model/User.kt b/src/main/kotlin/mobildata/model/User.kt index f1368f8..695a435 100644 --- a/src/main/kotlin/mobildata/model/User.kt +++ b/src/main/kotlin/mobildata/model/User.kt @@ -18,7 +18,7 @@ data class User(var email: String = "", var password: String = "", var token: String = "", @JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "dd/mm/yyyy") - var birthDate: Date = Date(), + var birthDate: Date? = null, var deviceType: String = "", // TODO type var androidVersion: Int? = null, @Id @GeneratedValue(strategy = GenerationType.AUTO) diff --git a/src/test/kotlin/mobildata/ApiApplicationTests.kt b/src/test/kotlin/mobildata/ApiApplicationTests.kt index dd8f406..3fc8c9a 100644 --- a/src/test/kotlin/mobildata/ApiApplicationTests.kt +++ b/src/test/kotlin/mobildata/ApiApplicationTests.kt @@ -3,8 +3,11 @@ package mobildata import feign.Feign import feign.gson.GsonDecoder import feign.gson.GsonEncoder +import mobildata.client.MobilDataClient import mobildata.client.UserClient +import mobildata.model.LocationData import mobildata.model.inout.Login +import mobildata.model.inout.MobilDataIn import mobildata.model.inout.Register import org.hamcrest.Matchers import org.junit.Assert @@ -25,6 +28,7 @@ class ApiApplicationTests { @Autowired var environment: Environment? = null var userClient: UserClient? = null + var dataClient: MobilDataClient? = null fun <T> buildClient(t: Class<T>): T { environment.let { @@ -38,6 +42,7 @@ class ApiApplicationTests { @Before fun before() { userClient = buildClient(UserClient::class.java) + dataClient = buildClient(MobilDataClient::class.java) } @Test @@ -61,6 +66,18 @@ class ApiApplicationTests { Assert.assertEquals("bar@bar.com", barLogin?.email) Assert.assertThat(barLogin?.token, Matchers.notNullValue()) println("Login bar OK") + + // cannot do that + // feign does not support dynamic header parameter, if there is already a body parameter (bug) + + //dataClient?.dataInput(barLogin!!.token ,MobilDataIn(location = LocationData(34.5, 45.6), sleepTime = 21, isNfcOn = true, + // isWifiOn = false, brightness = 23, battery = 98, isMobilDataOn = false, isBluetoothOn = false)) + + } + + @Test + fun sendData() { + Url url = Url( "https://api.github.com/users/" } } -- GitLab