control-structures-switch - Source

Source code for control-structures-switch

Verzeichnis-Struktur

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
control-structures-switch
├── src
│   ├── main
│   │   └── java
│   │       └── ch
│   │           └── itninja
│   │               └── labs
│   │                   ├── basicexercises
│   │                   │   ├── MonthHelper.java
│   │                   │   └── WeekHelper.java
│   │                   └── Main.java
│   └── test
│       └── java
│           └── ch
│               └── itninja
│                   └── labs
│                       ├── basicexercises
│                       │   ├── MonthHelperTest.java
│                       │   └── WeekHelperTest.java
│                       └── util
│                           └── ItNinjaOutput.java
├── pom.xml
└── README.md

Dateien in control-structures-switch

pom.xml
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
<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
             https://maven.apache.org/xsd/maven-4.0.0.xsd">
  <modelVersion>4.0.0</modelVersion>
  <groupId>ch.itninja</groupId>
  <artifactId>itninja-labs-01-basicexercises</artifactId>
  <version>1.0.0</version>

  <properties>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    <maven.compiler.source>17</maven.compiler.source>
    <maven.compiler.target>17</maven.compiler.target>
  </properties>

  <dependencies>
    <!-- JUnit 5 -->
    <dependency>
      <groupId>org.junit.jupiter</groupId>
      <artifactId>junit-jupiter</artifactId>
      <version>5.10.2</version>
      <scope>test</scope>
    </dependency>
  </dependencies>

  <build>
    <plugins>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-compiler-plugin</artifactId>
        <version>3.11.0</version>
        <configuration>
          <release>17</release>
          <encoding>UTF-8</encoding>
        </configuration>
      </plugin>
      <!-- Testing -->
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-surefire-plugin</artifactId>
        <version>3.2.5</version>
      </plugin>
    </plugins>
  </build>
</project>
README.md

Not able to display content!

src\main\java\ch\itninja\labs

Main.java
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
package ch.itninja.labs;

import java.time.Month;

import ch.itninja.labs.basicexercises.MonthHelper;
import ch.itninja.labs.basicexercises.WeekHelper;

/**
 * Entry point for the It-Ninja basic exercises.
 */
public class Main {
    public static void main(String[] args) {

        WeekHelper.printWeekdayNumber("Donnerstag");
        MonthHelper.printMonthByNumber(3);
    }
}

basicexercises

MonthHelper.java
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
package ch.itninja.labs.basicexercises;

/**
  * Utility class providing helper methods for month operations.
*/
public class MonthHelper {

    private MonthHelper() {
        // Prevent instantiation
    }

    /**
     * Passe die folgende Methode an. Gib abhängig von der Variable month den passenden Monat auf der Konsole aus. Der Wert
     * 1 soll dabei dem Monat Januar entsprechen, 2 dem Monat Februar, usw. Für Zahlen welche keinem Monat entsprechen
     * soll ungültiger Monat auf der Konsole ausgegeben werden.
     */
    public static void printMonthByNumber(int month) {

        // IT-Ninja: Füge hier Deinen Code ein...

    }
}
WeekHelper.java
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
package ch.itninja.labs.basicexercises;

/**
 * Utility class providing helper methods for week operations.
 */
public class WeekHelper {

    private WeekHelper() {
        // Prevent instantiation
    }

    /**
     * Passe die folgende Methode an. Gib abhängig von der Variable weekdayName auf der Konsole aus, um welchen Wochentag es sich
     * handelt:
     *
     * - Der [weekdayName] ist der [weekday]. Tag in der Woche.
     * - [weekdayName] entspricht keinem bekannten Wochentag.
     *
     * Wobei in der Ausgabe [weekdayName] durch den Namen des Wochentags ersetzt werden soll und [weekday] durch den Tag
     * der Woche, welche dem Wochentag entspricht. Der Montag soll dabei der erste Tag in der Woche sein.
     */
    public static void printWeekdayNumber(String weekdayName) {

        // IT-Ninja: Füge hier Deinen Code ein...

    }
}

src\test\java\ch\itninja\labs\basicexercises

MonthHelperTest.java
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
package ch.itninja.labs.basicexercises;

import java.io.ByteArrayOutputStream;
import java.io.PrintStream;

import ch.itninja.labs.util.ItNinjaOutput;
import org.junit.jupiter.params.ParameterizedTest;
import org.junit.jupiter.params.provider.CsvSource;

import static org.junit.jupiter.api.Assertions.assertEquals;

class MonthHelperTest {

    @ParameterizedTest
    @CsvSource({
            "1, 1, 'Januar'",
            "2, 5, 'Mai'",
            "3, 9, 'September'",
            "4, 12, 'Dezember'",
            "5, 22, 'ungültiger Monat'",
            "6, -3, 'ungültiger Monat'",
    })
    void givenNumbers_whenCalled_thenOutputAsExpected(int lab, int month, String expectedResult) {
        // GIVEN
        ByteArrayOutputStream outputStream = new ByteArrayOutputStream();
        PrintStream originalOut = System.out;
        System.setOut(new PrintStream(outputStream));

        try {
            // WHEN
            MonthHelper.printMonthByNumber(month);
        } finally {
            System.setOut(originalOut);
        }

        // THEN
        String output = outputStream.toString().trim();
        assertEquals(expectedResult, output, "Output is not as expected.");

        ItNinjaOutput.PrintItNinjaOutput("MonthByNumber"+lab, "MonthHelper.printMonthByNumber("+month+");", output);
    }
}
WeekHelperTest.java
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
package ch.itninja.labs.basicexercises;

import java.io.ByteArrayOutputStream;
import java.io.PrintStream;

import ch.itninja.labs.util.ItNinjaOutput;
import org.junit.jupiter.params.ParameterizedTest;
import org.junit.jupiter.params.provider.CsvSource;

import static org.junit.jupiter.api.Assertions.assertEquals;

public class WeekHelperTest {
    @ParameterizedTest
    @CsvSource({
            "1, 'Montag', 'Der Montag ist der 1. Tag in der Woche.'",
            "0, 'Dienstag', 'Der Dienstag ist der 2. Tag in der Woche.'",
            "0, 'Mittwoch', 'Der Mittwoch ist der 3. Tag in der Woche.'",
            "2, 'Donnerstag', 'Der Donnerstag ist der 4. Tag in der Woche.'",
            "1, 'Freitag', 'Der Freitag ist der 5. Tag in der Woche.'",
            "4, 'Samstag', 'Der Samstag ist der 6. Tag in der Woche.'",
            "0, 'Sonntag', 'Der Sonntag ist der 7. Tag in der Woche.'",
            "3, 'Weihnachten', 'Weihnachten entspricht keinem bekannten Wochentag.'"
    })
    void givenYears_whenCalled_thenOutputAsExpected(int lab, String weekdayName, String expectedOutput) {
        // GIVEN
        ByteArrayOutputStream outputStream = new ByteArrayOutputStream();
        PrintStream originalOut = System.out;
        System.setOut(new PrintStream(outputStream));
        boolean result;

        try {
            // WHEN
            WeekHelper.printWeekdayNumber(weekdayName);
        } finally {
            System.setOut(originalOut);
        }

        // THEN
        String output = outputStream.toString().trim();
        assertEquals(expectedOutput, output, "Output is not as expected.");
        ItNinjaOutput.PrintItNinjaOutput("Weekday"+lab, "WeekHelper.printWeekdayNumber(\""+weekdayName+"\");", output);
    }

}

src\test\java\ch\itninja\labs\util

ItNinjaOutput.java
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
package ch.itninja.labs.util;

public class ItNinjaOutput {
    public static void PrintItNinjaOutput(String lab, String input, String output) {
        System.out.println("<itninja input lab=\""+lab+"\">");
        System.out.println(input);
        System.out.println("</itninja>");
        System.out.println("<itninja output lab=\""+lab+"\">");
        System.out.println(output);
        System.out.println("</itninja>");
    }
}