Skip to content

Commit 171d173

Browse files
committed
improving service
1 parent e9e446e commit 171d173

3 files changed

Lines changed: 52 additions & 19 deletions

File tree

src/main/java/org/learning/by/example/reactive/microservices/model/SunriseSunsetResult.java

Lines changed: 28 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -4,26 +4,42 @@
44
import com.fasterxml.jackson.annotation.JsonProperty;
55

66
public final class SunriseSunsetResult {
7-
public final Results results;
8-
public final String status;
7+
private final Results results;
8+
private final String status;
99

1010
@JsonCreator
1111
public SunriseSunsetResult(@JsonProperty("results") Results results, @JsonProperty("status") String status){
1212
this.results = results;
1313
this.status = status;
1414
}
1515

16+
public Results getResults() {
17+
return results;
18+
}
19+
20+
public String getStatus() {
21+
return status;
22+
}
23+
1624
public static final class Results {
17-
public final String sunrise;
18-
public final String sunset;
19-
public final String solar_noon;
20-
public final String day_length;
21-
public final String civil_twilight_begin;
22-
public final String civil_twilight_end;
23-
public final String nautical_twilight_begin;
24-
public final String nautical_twilight_end;
25-
public final String astronomical_twilight_begin;
26-
public final String astronomical_twilight_end;
25+
public String getSunrise() {
26+
return sunrise;
27+
}
28+
29+
public String getSunset() {
30+
return sunset;
31+
}
32+
33+
final String sunrise;
34+
final String sunset;
35+
final String solar_noon;
36+
final String day_length;
37+
final String civil_twilight_begin;
38+
final String civil_twilight_end;
39+
final String nautical_twilight_begin;
40+
final String nautical_twilight_end;
41+
final String astronomical_twilight_begin;
42+
final String astronomical_twilight_end;
2743

2844
@JsonCreator
2945
public Results(@JsonProperty("sunrise") String sunrise, @JsonProperty("sunset") String sunset, @JsonProperty("solar_noon") String solar_noon, @JsonProperty("day_length") String day_length, @JsonProperty("civil_twilight_begin") String civil_twilight_begin, @JsonProperty("civil_twilight_end") String civil_twilight_end, @JsonProperty("nautical_twilight_begin") String nautical_twilight_begin, @JsonProperty("nautical_twilight_end") String nautical_twilight_end, @JsonProperty("astronomical_twilight_begin") String astronomical_twilight_begin, @JsonProperty("astronomical_twilight_end") String astronomical_twilight_end){

src/main/java/org/learning/by/example/reactive/microservices/services/SunriseSunsetServiceImpl.java

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -13,8 +13,8 @@ public class SunriseSunsetServiceImpl implements SunriseSunsetService{
1313
private static final String BEGIN_PARAMETERS="?";
1414
private static final String NEXT_PARAMETER="&";
1515
private static final String EQUALS="=";
16-
private static final String LATITUDE_PARAMETER="lat";
17-
private static final String LONGITUDE_PARAMETER="lng";
16+
private static final String LATITUDE_PARAMETER="lat"+EQUALS;
17+
private static final String LONGITUDE_PARAMETER="lng"+EQUALS;
1818

1919
WebClient webClient;
2020
private final String endPoint;
@@ -34,11 +34,10 @@ public Mono<SunriseSunset> fromLocation(Mono<Location> location) {
3434
}
3535

3636
Mono<String> buildUrl(final Mono<Location> locationMono) {
37-
return locationMono.flatMap(location -> Mono.just(endPoint
38-
.concat(BEGIN_PARAMETERS)
39-
.concat(LATITUDE_PARAMETER).concat(EQUALS).concat(Double.toString(location.getLatitude()))
37+
return locationMono.flatMap(location -> Mono.just(endPoint.concat(BEGIN_PARAMETERS)
38+
.concat(LATITUDE_PARAMETER).concat(Double.toString(location.getLatitude()))
4039
.concat(NEXT_PARAMETER)
41-
.concat(LONGITUDE_PARAMETER).concat(EQUALS).concat(Double.toString(location.getLongitude()))
40+
.concat(LONGITUDE_PARAMETER).concat(Double.toString(location.getLongitude()))
4241
));
4342
}
4443

@@ -53,6 +52,7 @@ Mono<SunriseSunsetResult> get(final Mono<String> monoUrl) {
5352

5453
Mono<SunriseSunset> createResult(final Mono<SunriseSunsetResult> sunriseSunsetResultMono){
5554
return sunriseSunsetResultMono.flatMap(sunriseSunsetResult ->
56-
Mono.just(new SunriseSunset(sunriseSunsetResult.results.sunrise, sunriseSunsetResult.results.sunset)));
55+
Mono.just(new SunriseSunset(sunriseSunsetResult.getResults().getSunrise(),
56+
sunriseSunsetResult.getResults().getSunset())));
5757
}
5858
}

src/test/java/org/learning/by/example/reactive/microservices/services/SunriseSunsetServiceImplTests.java

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,12 +5,15 @@
55
import org.learning.by.example.reactive.microservices.model.Location;
66
import org.learning.by.example.reactive.microservices.model.SunriseSunset;
77
import org.learning.by.example.reactive.microservices.test.categories.UnitTest;
8+
import org.springframework.beans.factory.annotation.Value;
89
import org.springframework.boot.test.mock.mockito.SpyBean;
910
import reactor.core.publisher.Mono;
1011

12+
import static org.hamcrest.CoreMatchers.not;
1113
import static org.hamcrest.CoreMatchers.notNullValue;
1214
import static org.hamcrest.MatcherAssert.assertThat;
1315
import static org.hamcrest.core.Is.is;
16+
import static org.hamcrest.text.IsEmptyString.isEmptyOrNullString;
1417

1518
@UnitTest
1619
@DisplayName("SunriseSunsetServiceImplTests Unit Tests")
@@ -20,6 +23,11 @@ class SunriseSunsetServiceImplTests {
2023
private static final double GOOGLE_LNG = -122.0856086;
2124
private static final Location GOOGLE_LOCATION = new Location(GOOGLE_LAT, GOOGLE_LNG);
2225
private static final Mono<Location> GOOGLE_LOCATION_MONO = Mono.just(GOOGLE_LOCATION);
26+
private static final String GOOGLE_LOCATION_IN_PARAMS = "?lat="+Double.toString(GOOGLE_LAT)+"&lng="+Double.toString(GOOGLE_LNG);
27+
28+
@Value("${SunriseSunsetServiceImpl.endPoint}")
29+
private
30+
String endPoint;
2331

2432
@SpyBean(SunriseSunsetService.class)
2533
private SunriseSunsetServiceImpl sunriseSunsetService;
@@ -34,6 +42,15 @@ void fromLocationTest() {
3442
SunriseSunset result = GOOGLE_LOCATION_MONO.transform(sunriseSunsetService::fromLocation).block();
3543

3644
assertThat(result, is(notNullValue()));
45+
assertThat(result.getSunrise(), not(isEmptyOrNullString()));
46+
assertThat(result.getSunset(), not(isEmptyOrNullString()));
3747
}
3848

49+
@Test
50+
void buildUrlTest() {
51+
String url = GOOGLE_LOCATION_MONO.transform(sunriseSunsetService::buildUrl).block();
52+
53+
assertThat(url, is(notNullValue()));
54+
assertThat(url, is(endPoint.concat(GOOGLE_LOCATION_IN_PARAMS)));
55+
}
3956
}

0 commit comments

Comments
 (0)