This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
public class CalculatorImpl implements Calculator { | |
public CalculatorImpl() { | |
} | |
@Override | |
public double process(String expression) { | |
String[] tokens = expression.split(" "); | |
Deque<String> operators = new ArrayDeque<>(); | |
Deque<Double> numbers = new ArrayDeque<>(); | |
try { |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
@Parameters(name = "{index}: CalculatorTest({0})={1}, throws {2}") | |
public static Collection<Object[]> data() { | |
return Arrays.asList(new Object[][]{ | |
{"1 + 1", 2, null}, | |
{"1 + 1 + 1", 3, null}, | |
{"1–1", 0, null}, | |
{"1 * 1", 1, null}, | |
{"1 / 1", 1, null}, | |
{"( 1 + 1 )", 2, null}, | |
{"+", 0, new CalculatorException("Invalid expression: +")}, |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
@RunWith(Parameterized.class) | |
public class CalculatorTest { | |
@Parameters(name = "{index}: CalculatorTest({0})={1}, throws {2}") | |
public static Collection<Object[]> data() { | |
return Arrays.asList(new Object[][]{ | |
{"1 + 1", 2, null}, | |
{"1 + 1 + 1", 3, null}, | |
{"1–1", 0, null}, | |
{"1 * 1", 1, null}, | |
{"1 / 1", 1, null}, |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
public class CalcControllerTest { | |
@Test | |
public void result() { | |
CalcController c = new CalcController(new Calculator() { | |
@Override | |
public double process(String expression) { | |
if (expression.equals("1 + 1")) { | |
return 2; | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
@RunWith(SpringRunner.class) | |
@SpringBootTest | |
public class DemoApplicationTests { | |
@Autowired | |
ApplicationContext ac; | |
@Test | |
public void contextLoads() { | |
Calculator calculator = ac.getBean(Calculator.class); |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<reporting> | |
<plugins> | |
<plugin> | |
<groupId>org.jacoco</groupId> | |
<artifactId>jacoco-maven-plugin</artifactId> | |
<reportSets> | |
<reportSet> | |
<reports> | |
<!-- select non-aggregate reports --> | |
<report>report</report> |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<plugin> | |
<groupId>org.jacoco</groupId> | |
<artifactId>jacoco-maven-plugin</artifactId> | |
<version>0.8.2</version> | |
<executions> | |
<execution> | |
<goals> | |
<goal>prepare-agent</goal> | |
</goals> | |
</execution> |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
package com.example.demo; | |
import org.junit.Test; | |
import org.junit.runner.RunWith; | |
import org.springframework.boot.test.context.SpringBootTest; | |
import org.springframework.test.context.junit4.SpringRunner; | |
@RunWith(SpringRunner.class) | |
@SpringBootTest | |
public class DemoApplicationTests { |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<?xml version="1.0" encoding="UTF-8"?> | |
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" | |
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> | |
<modelVersion>4.0.0</modelVersion> | |
<groupId>com.example</groupId> | |
<artifactId>demo</artifactId> | |
<version>0.0.1-SNAPSHOT</version> | |
<packaging>jar</packaging> |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
package com.example.demo; | |
import com.example.demo.calculator.Calculator; | |
import com.example.demo.calculator.CalculatorImpl; | |
import org.springframework.boot.SpringApplication; | |
import org.springframework.boot.autoconfigure.SpringBootApplication; | |
import org.springframework.context.annotation.Bean; | |
@SpringBootApplication | |
public class DemoApplication { |
NewerOlder