Skip to content

Commit 6ce87a5

Browse files
committed
travis
1 parent 218215e commit 6ce87a5

File tree

9 files changed

+111
-44
lines changed

9 files changed

+111
-44
lines changed

.travis.yml

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -11,5 +11,4 @@ cache:
1111

1212
script:
1313
- java --version
14-
- mvn clean install
15-
- mvn test
14+
- gradle test

build.gradle

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,9 +20,12 @@ repositories {
2020

2121

2222
dependencies {
23+
implementation 'org.projectlombok:lombok:1.18.16'
2324
compileOnly 'org.projectlombok:lombok'
24-
developmentOnly 'org.springframework.boot:spring-boot-devtools'
2525
annotationProcessor 'org.projectlombok:lombok'
26+
27+
developmentOnly 'org.springframework.boot:spring-boot-devtools'
28+
2629
implementation 'org.springframework.boot:spring-boot-starter-web'
2730
testImplementation('org.springframework.boot:spring-boot-starter-test') {
2831
exclude group: 'org.junit.vintage', module: 'junit-vintage-engine'

src/main/java/net/hofmann/example/springtriangle/controller/GeometricsController.java

Lines changed: 10 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -4,13 +4,14 @@
44
import net.hofmann.example.springtriangle.data.TriangleCalculator;
55
import org.springframework.beans.factory.annotation.Autowired;
66
import org.springframework.web.bind.annotation.GetMapping;
7+
import org.springframework.web.bind.annotation.PathVariable;
78
import org.springframework.web.bind.annotation.RestController;
89

910
import java.awt.*;
1011
import java.util.List;
1112

1213
@RestController
13-
class GeometricsController {
14+
public class GeometricsController {
1415

1516

1617
@Autowired
@@ -21,12 +22,16 @@ class GeometricsController {
2122

2223

2324
@GetMapping("/numbers")
24-
List<Integer> numbers() {
25+
public List<Integer> numbers() {
2526
return numberCalculator.numbers();
2627
}
2728

28-
@GetMapping("/triangleArea")
29-
Double numbers(Point p1, Point p2, Point p3) {
30-
return triangleCalculator.triangleArea(p1, p2, p3);
29+
@GetMapping ("/triangleArea/{p1x}-{p1y}/{p2x}-{p2y}/{p3x}-{p3y}")
30+
// @GetMapping("/triangleArea")
31+
public Float triangleArea(@PathVariable Integer p1x, @PathVariable Integer p1y, @PathVariable Integer p2x, @PathVariable Integer p2y, @PathVariable Integer p3x, @PathVariable Integer p3y) {
32+
Float area = triangleCalculator.triangleArea(new Point(p1x, p1y), new Point(p2x, p2y), new Point(p3x, p3y));
33+
34+
//Send location in response
35+
return area;
3136
}
3237
}

src/main/java/net/hofmann/example/springtriangle/data/NumberCalculator.java

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -3,9 +3,6 @@
33

44
import org.springframework.stereotype.Component;
55

6-
import java.util.ArrayList;
7-
import java.util.Arrays;
8-
import java.util.Collections;
96
import java.util.List;
107

118
@Component

src/main/java/net/hofmann/example/springtriangle/data/NumberCalculatorImpl.java

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,5 @@
11
package net.hofmann.example.springtriangle.data;
22

3-
import org.springframework.context.annotation.Primary;
43
import org.springframework.stereotype.Component;
54

65
import java.util.Collections;

src/main/java/net/hofmann/example/springtriangle/data/TriangleCalculator.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,5 +7,5 @@
77
@Component
88
public interface TriangleCalculator {
99

10-
Double triangleArea(Point p1, Point p2, Point p3);
10+
Float triangleArea(Point p1, Point p2, Point p3);
1111
}
Lines changed: 3 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,5 @@
11
package net.hofmann.example.springtriangle.data;
22

3-
import org.springframework.context.annotation.Primary;
43
import org.springframework.stereotype.Component;
54

65
import java.awt.*;
@@ -9,21 +8,9 @@
98
public class TriangleCalculatorImpl implements TriangleCalculator {
109

1110
@Override
12-
public final Double triangleArea(Point p1, Point p2, Point p3) {
11+
public Float triangleArea(Point A, Point B, Point C) {
1312

14-
double side1 = 0;
15-
double side2 = 0;
16-
double side3 = 0;
17-
18-
//find length of sides of triangle
19-
side1 = Math.pow(Math.pow((p2.x - p1.x), 2) + Math.pow((p2.y - p1.y), 2) * .05, side1);
20-
side2 = Math.pow(Math.pow((p3.x - p2.x), 2) + Math.pow((p3.y - p2.y), 2) * .05, side2);
21-
side3 = Math.pow(Math.pow((p1.x - p3.x), 2) + Math.pow((p1.y - p3.y), 2) * .05, side3);
22-
23-
double s = (side1 + side2 + side3) / 2;
24-
25-
double area = Math.sqrt(s * (s - side1) * (s - side2) * (s - side3)) * 0.5;
26-
27-
return area;
13+
float area = (A.x * (B.y - C.y) + B.x * (C.y - A.y) + C.x * (A.y - B.y)) / 2.0f;
14+
return Math.abs(area);
2815
}
2916
}
Lines changed: 92 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,92 @@
1+
package net.hofmann.example.springtriangle;
2+
3+
import net.hofmann.example.springtriangle.controller.GeometricsController;
4+
import org.junit.jupiter.api.Assertions;
5+
import org.junit.jupiter.api.Test;
6+
import org.springframework.beans.factory.annotation.Autowired;
7+
import org.springframework.boot.test.context.SpringBootTest;
8+
import org.springframework.boot.test.web.client.TestRestTemplate;
9+
import org.springframework.boot.web.server.LocalServerPort;
10+
11+
import java.awt.*;
12+
import java.util.List;
13+
14+
15+
@SpringBootTest(webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT)
16+
public class GeometricsControllerTests {
17+
18+
@Autowired
19+
private GeometricsController geometricsController;
20+
21+
@LocalServerPort
22+
private int port;
23+
24+
@Autowired
25+
private TestRestTemplate restTemplate;
26+
27+
@Test
28+
void contextLoads() {
29+
Assertions.assertNotNull(geometricsController);
30+
}
31+
32+
@Test
33+
void testGeoNumbersTen() {
34+
List<Integer> tenNumbersExpected = List.of(1, 2, 3, 4, 5, 6, 7, 8, 9, 10);
35+
List<Integer> tenNumbersResult = geometricsController.numbers();
36+
37+
System.out.println("Expected Numbers 1-10: " + tenNumbersExpected);
38+
System.out.println("Result Numbers 1-10: " + tenNumbersResult);
39+
40+
Assertions.assertEquals(tenNumbersExpected, tenNumbersResult);
41+
}
42+
43+
@Test
44+
void testGeoNumbersTenREST() {
45+
List<Integer> tenNumbersExpected = List.of(1, 2, 3, 4, 5, 6, 7, 8, 9, 10);
46+
47+
List tenNumbersResult = restTemplate.getForObject("http://localhost:" + port + "/numbers", List.class);
48+
49+
50+
System.out.println("REST Expected Numbers 1-10: " + tenNumbersExpected);
51+
System.out.println("REST Result Numbers 1-10: " + tenNumbersResult);
52+
53+
Assertions.assertEquals(tenNumbersExpected, tenNumbersResult);
54+
}
55+
56+
@Test
57+
void testGeoTriangleCalc() {
58+
Point p1 = new Point(5, 20);
59+
Point p2 = new Point(10, 30);
60+
Point p3 = new Point(33, 42);
61+
62+
Float areaExpected = 85f;
63+
Float areaResult = geometricsController.triangleArea(p1.x, p1.y, p2.x, p2.y, p3.x, p3.y);
64+
65+
System.out.println("Expected Triangle Area: 85");
66+
System.out.println("Result Triangle Area: " + areaResult);
67+
68+
Assertions.assertEquals(areaExpected, areaResult);
69+
}
70+
71+
@Test
72+
void testGeoTriangleCalcREST() {
73+
Point p1 = new Point(5, 20);
74+
Point p2 = new Point(10, 30);
75+
Point p3 = new Point(33, 42);
76+
77+
Float areaExpected = 85f;
78+
Float areaResult = restTemplate.getForObject(
79+
"http://localhost:" + port +
80+
"/triangleArea/" +
81+
p1.x + "-" + p1.y +
82+
"/" + p2.x + "-" + p2.y +
83+
"/" + p3.x + "-" + p3.y,
84+
Float.class);
85+
86+
87+
System.out.println("REST Expected Triangle Area: 85");
88+
System.out.println("REST Result Triangle Area: " + areaResult);
89+
90+
Assertions.assertEquals(areaExpected, areaResult);
91+
}
92+
}

src/test/java/net/hofmann/example/springtriangle/SpringtriangleApplicationTests.java

Lines changed: 0 additions & 15 deletions
This file was deleted.

0 commit comments

Comments
 (0)