diff --git a/src/main/java/br/masmangan/beecrowd/bee1017/Main.java b/src/main/java/br/masmangan/beecrowd/bee1017/Main.java new file mode 100644 index 0000000..e6179be --- /dev/null +++ b/src/main/java/br/masmangan/beecrowd/bee1017/Main.java @@ -0,0 +1,30 @@ +package br.masmangan.beecrowd.bee1017; + +import java.util.Locale; +import java.util.Scanner; + +import static java.lang.System.out; + +class Main { + + public static float howManyLiters(int time, int avgVelocity) { + int distance = time * avgVelocity; + float liters = (float) ((float) distance / 12.0); + return liters; + } + + public static void main(String [] args) { + Scanner in = new Scanner(System.in); + + int time = in.nextInt(); + int avgVelocity = in.nextInt(); + + in.close(); + + float liters = howManyLiters(time, avgVelocity); + + String litersStr = String.format(Locale.US, "%.3f", liters); + + out.println(litersStr); + } +} \ No newline at end of file diff --git a/src/test/java/br/masmangan/beecrowd/bee1017/Bee1017Steps.java b/src/test/java/br/masmangan/beecrowd/bee1017/Bee1017Steps.java new file mode 100644 index 0000000..8dcbfe0 --- /dev/null +++ b/src/test/java/br/masmangan/beecrowd/bee1017/Bee1017Steps.java @@ -0,0 +1,51 @@ +package br.masmangan.beecrowd.bee1017; + +import io.cucumber.java.en.Given; +import io.cucumber.java.en.Then; +import io.cucumber.java.en.When; + +import java.io.*; +import java.nio.charset.StandardCharsets; + +import static org.junit.Assert.assertEquals; + + +public class Bee1017Steps { + private String input; + private String actual; + + @Given("input is") + public void input_is(String input) { + this.input = input; + } + + @When("program runs") + public void program_runs() throws IOException { + InputStream inputStream = new ByteArrayInputStream(input.getBytes(StandardCharsets.UTF_8)); + + ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream(); + + PrintStream outputStream = new PrintStream(byteArrayOutputStream); + + PrintStream previousOut = System.out; + InputStream previousIn = System.in; + + System.setIn(inputStream); + System.setOut(outputStream); + + Main.main(null); + + actual = byteArrayOutputStream.toString(); + + inputStream.close(); + outputStream.close(); + + System.setOut(previousOut); + System.setIn(previousIn); + } + + @Then("output should be") + public void output_should_be(String expected) { + assertEquals(expected, actual); + } +} diff --git a/src/test/java/br/masmangan/beecrowd/bee1017/RunCucumberTest.java b/src/test/java/br/masmangan/beecrowd/bee1017/RunCucumberTest.java new file mode 100644 index 0000000..82d7e62 --- /dev/null +++ b/src/test/java/br/masmangan/beecrowd/bee1017/RunCucumberTest.java @@ -0,0 +1,11 @@ +package br.masmangan.beecrowd.bee1017; + +import io.cucumber.junit.Cucumber; +import io.cucumber.junit.CucumberOptions; +import org.junit.runner.RunWith; + +@RunWith(Cucumber.class) +@CucumberOptions(plugin = {"pretty"}) +public class RunCucumberTest { + +} diff --git a/src/test/resources/br/masmangan/beecrowd/bee1017/bee1017.feature b/src/test/resources/br/masmangan/beecrowd/bee1017/bee1017.feature new file mode 100644 index 0000000..e07c810 --- /dev/null +++ b/src/test/resources/br/masmangan/beecrowd/bee1017/bee1017.feature @@ -0,0 +1,48 @@ +@system +Feature: Bee1017 CLI + + Narrative: + + I want to know how many liters I need based on travel time and average velocity + + Scenario: Run program with input + + Given input is +""" +10 +85 +""" + When program runs + Then output should be +""" +70.833 + +""" + + Scenario: Run program with input + + Given input is +""" +2 +92 +""" + When program runs + Then output should be +""" +15.333 + +""" + + Scenario: Run program with input + + Given input is +""" +22 +67 +""" + When program runs + Then output should be +""" +122.833 + +""" \ No newline at end of file