diff --git a/lesson_15/tdd/tdd_app/src/main/java/com/codedifferently/lesson15/Employee.java b/lesson_15/tdd/tdd_app/src/main/java/com/codedifferently/lesson15/Employee.java index 49aaabbd7..74e23ea67 100644 --- a/lesson_15/tdd/tdd_app/src/main/java/com/codedifferently/lesson15/Employee.java +++ b/lesson_15/tdd/tdd_app/src/main/java/com/codedifferently/lesson15/Employee.java @@ -45,4 +45,8 @@ public double getSalary() { public void setSalary(double salary) { this.salary = salary; } + + public String getDetails() { + return id + " " + name + " " + department + " " + salary; + } } diff --git a/lesson_15/tdd/tdd_app/src/test/java/com/codedifferently/lesson15/EmployeeManagerTest.java b/lesson_15/tdd/tdd_app/src/test/java/com/codedifferently/lesson15/EmployeeManagerTest.java new file mode 100644 index 000000000..f392c8eaa --- /dev/null +++ b/lesson_15/tdd/tdd_app/src/test/java/com/codedifferently/lesson15/EmployeeManagerTest.java @@ -0,0 +1,76 @@ +package com.codedifferently.lesson15; + +import static org.assertj.core.api.Assertions.assertThat; + +import org.junit.jupiter.api.Test; + +public class EmployeeManagerTest { + @Test + public void employeeManagerTest() { + // Arrange + EmployeeManager employeeManager = new EmployeeManager(); + Employee employee = new Employee(1, "Justin Eklund", "Software Engineer", 0); + // Act + employeeManager.addEmployee(employee); + // Assert + assertThat(employeeManager.getEmployeeCount()).isEqualTo(1); + } + + @Test + public void testAddEmployee() { + // Arrange + EmployeeManager employeeManager = new EmployeeManager(); + Employee employee = new Employee(1, "Justin Eklund", "Software Engineer", 0); + // Act + employeeManager.addEmployee(employee); + // Assert + assertThat(employeeManager.getEmployeeCount()).isEqualTo(1); + } + + @Test + public void testGetEmployee() { + // Arrange + EmployeeManager employeeManager = new EmployeeManager(); + Employee employee = new Employee(1, "Justin Eklund", "Software Engineer", 0); + employeeManager.addEmployee(employee); + // Act + Employee retrievedEmployee = employeeManager.getEmployee(1); + // Assert + assertThat(retrievedEmployee).isEqualTo(employee); + } + + @Test + public void testUpdateEmployee() { + // Arrange + EmployeeManager employeeManager = new EmployeeManager(); + Employee employee = new Employee(1, "Justin Eklund", "Software Engineer", 500000); + employeeManager.addEmployee(employee); + // Act + employee.setName("Justin Eklund Updated"); + employeeManager.updateEmployee(employee); + // Assert + assertThat(employeeManager.getEmployee(1).getName()).isEqualTo("Justin Eklund Updated"); + } + + @Test + public void testRemoveEmployee() { + // Arrange + EmployeeManager employeeManager = new EmployeeManager(); + Employee employee = new Employee(1, "Justin Eklund", "Software Engineer", 0); + employeeManager.addEmployee(employee); + // Act + employeeManager.removeEmployee(1); + // Assert + assertThat(employeeManager.getEmployeeCount()).isEqualTo(0); + } + + @Test + public void testAssertEmployeeInCollection() { + // Arrange + EmployeeManager employeeManager = new EmployeeManager(); + Employee employee = new Employee(1, "Justin Eklund", "Software Engineer", 0); + employeeManager.addEmployee(employee); + // Act & Assert + assertThat(employeeManager.getEmployee(1)).isEqualTo(employee); + } +} diff --git a/lesson_15/tdd/tdd_app/src/test/java/com/codedifferently/lesson15/EmployeeTest.java b/lesson_15/tdd/tdd_app/src/test/java/com/codedifferently/lesson15/EmployeeTest.java new file mode 100644 index 000000000..1eb48e120 --- /dev/null +++ b/lesson_15/tdd/tdd_app/src/test/java/com/codedifferently/lesson15/EmployeeTest.java @@ -0,0 +1,116 @@ +package com.codedifferently.lesson15; + +import static org.assertj.core.api.Assertions.assertThat; + +import org.junit.jupiter.api.Test; + +public class EmployeeTest { + + @Test + public void testGetDetails() { + // Arrange + Employee employee = new Employee(1, "Justin Eklund", "Software Engineering", 5000000); + + // Act + String details = employee.getDetails(); + + // Assert + assertThat(details).isEqualTo("1 Justin Eklund Software Engineering 5000000.0"); + } + + @Test + public void testGetId() { + // Arrange + Employee employee = new Employee(1, "Justin Eklund", "Software Engineering", 5000000); + + // Act + int id = employee.getId(); + + // Assert + assertThat(id).isEqualTo(1); + } + + @Test + public void testSetId() { + // Arrange + Employee employee = new Employee(1, "Justin Eklund", "Software Engineering", 5000000); + + // Act + employee.setId(2); + + // Assert + assertThat(employee.getId()).isEqualTo(2); + } + + @Test + public void testGetName() { + // Arrange + Employee employee = new Employee(1, "Justin Eklund", "Software Engineering", 5000000); + + // Act + String name = employee.getName(); + + // Assert + assertThat(name).isEqualTo("Justin Eklund"); + } + + @Test + public void testSetName() { + // Arrange + Employee employee = new Employee(1, "Justin Eklund", "Software Engineering", 5000000); + + // Act + employee.setName("Justin Eklund"); + + // Assert + assertThat(employee.getName()).isEqualTo("Justin Eklund"); + } + + @Test + public void testGetDepartment() { + // Arrange + Employee employee = new Employee(1, "Justin Eklund", "Software Engineering", 5000000); + + // Act + String department = employee.getDepartment(); + + // Assert + assertThat(department).isEqualTo("Software Engineering"); + } + + @Test + public void testSetDepartment() { + // Arrange + Employee employee = new Employee(1, "Justin Eklund", "Software Engineering", 5000000); + + // Act + employee.setDepartment("Engineering"); + + // Assert + assertThat(employee.getDepartment()).isEqualTo("Engineering"); + } + + @Test + public void testGetSalary() { + // Arrange + Employee employee = new Employee(1, "Justin Eklund", "Software Engineering", 5000000); + + // Act + double salary = employee.getSalary(); + + // Assert + assertThat(salary).isEqualTo(5000000); + } + + @Test + public void testSetSalary() { + // Arrange + Employee employee = new Employee(1, "Justin Eklund", "Software Engineering", 5000000); + + // Act + employee.setSalary(5000000); + + // Assert + assertThat(employee.getSalary()).isEqualTo(5000000); + } +} diff --git a/lesson_15/tdd/tdd_app/src/test/java/com/codedifferently/lesson15/Lesson15Test.java b/lesson_15/tdd/tdd_app/src/test/java/com/codedifferently/lesson15/Lesson15Test.java index cd6ef511e..0be6093d4 100644 --- a/lesson_15/tdd/tdd_app/src/test/java/com/codedifferently/lesson15/Lesson15Test.java +++ b/lesson_15/tdd/tdd_app/src/test/java/com/codedifferently/lesson15/Lesson15Test.java @@ -10,10 +10,4 @@ class Lesson15Test { public void testLesson15() { assertThat(new Lesson15()).isNotNull(); } - - @Test - public void testGetGreeting() { - // Act - Lesson15.main(null); - } } diff --git a/lesson_16/objects/objects_app/src/main/java/com/codedifferently/lesson16/justins_playlist/Playlist b/lesson_16/objects/objects_app/src/main/java/com/codedifferently/lesson16/justins_playlist/Playlist new file mode 100644 index 000000000..26d2eaf07 --- /dev/null +++ b/lesson_16/objects/objects_app/src/main/java/com/codedifferently/lesson16/justins_playlist/Playlist @@ -0,0 +1,43 @@ +package com.codedifferently.lesson16.justins_playlist; + +import java.util.ArrayList; +import java.util.List; + +public class Playlist { + private String name; + private String genre; + private int duration; + private List songs; + + public Playlist(String name, String genre, int duration) { + this.name = name; + this.genre = genre; + this.duration = duration; + this.songs = new ArrayList<>(); + } + + // Getters and Setters + public String getName() { return name; } + public void setName(String name) { this.name = name; } + + public String getGenre() { return genre; } + public void setGenre(String genre) { this.genre = genre; } + + public int getDuration() { return duration; } + public void setDuration(int duration) { this.duration = duration; } + + public String getDetails() { + return "Name: " + name + ", Genre: " + genre + ", Duration: " + duration; + } + + public void addSong(String song) { + if (song == null || song.isEmpty()) { + throw new IllegalArgumentException("Song cannot be null or empty"); + } + songs.add(song); + } + + public List getSongs() { + return songs; + } +} diff --git a/lesson_16/objects/objects_app/src/main/java/com/codedifferently/lesson16/justins_playlist/PlaylistExceptions b/lesson_16/objects/objects_app/src/main/java/com/codedifferently/lesson16/justins_playlist/PlaylistExceptions new file mode 100644 index 000000000..b168ab1e1 --- /dev/null +++ b/lesson_16/objects/objects_app/src/main/java/com/codedifferently/lesson16/justins_playlist/PlaylistExceptions @@ -0,0 +1,23 @@ +package com.codedifferently.lesson16.justins_playlist; + +import java.util.ArrayList; +import java.util.List; + +public class Playlist { + private final List songs = new ArrayList<>(); + + public void addSong(String song) { + songs.add(song); + } + + public void playAll() { + if (songs.isEmpty()) { + throw new IllegalStateException("No songs in the playlist to play."); + } + + System.out.println("Playing all songs in the playlist:"); + for (String song : songs) { + System.out.println("Playing: " + song); + } + } +} diff --git a/lesson_16/objects/objects_app/src/test/java/com/codedifferently/lesson16/playlist.test/PlaylistExceptionsTest b/lesson_16/objects/objects_app/src/test/java/com/codedifferently/lesson16/playlist.test/PlaylistExceptionsTest new file mode 100644 index 000000000..26df26f61 --- /dev/null +++ b/lesson_16/objects/objects_app/src/test/java/com/codedifferently/lesson16/playlist.test/PlaylistExceptionsTest @@ -0,0 +1,41 @@ +package com.codedifferently.lesson16.playlist.test; + +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Test; + +import static org.assertj.core.api.Assertions.*; + +public class PlaylistTest { + + private Playlist playlist; + + @BeforeEach + public void setUp() { + playlist = new playlist(); + } + + @Test + public void testAddSongDoesNotThrow() { + assertThatCode(() -> playlist.addSong("My Favorite Song")) + .doesNotThrowAnyException(); + } + + @Test + public void testPlayAllThrowsWhenNoSongs() { + assertThatThrownBy(() -> playlist.playAll()) + .isInstanceOf(IllegalStateException.class) + .hasMessage("No songs in the playlist to play."); + } + + @Test + public void testPlayAllPlaysSongsWhenNotEmpty() { + playlist.addSong("Song 1"); + playlist.addSong("Song 2"); + + // We're not capturing console output here — just making sure no exceptions are thrown + assertThatCode(() -> playlist.playAll()) + .doesNotThrowAnyException(); + } +} + +} diff --git a/lesson_16/objects/objects_app/src/test/java/com/codedifferently/lesson16/playlist.test/PlaylistTest b/lesson_16/objects/objects_app/src/test/java/com/codedifferently/lesson16/playlist.test/PlaylistTest new file mode 100644 index 000000000..8086bb3ef --- /dev/null +++ b/lesson_16/objects/objects_app/src/test/java/com/codedifferently/lesson16/playlist.test/PlaylistTest @@ -0,0 +1,49 @@ +package com.codedifferently.lesson16.justinsplaylist; + +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Test; +import static org.assertj.core.api.Assertions.*; +import static org.assertj.core.api.assertThat; +import com.codedifferently.lesson16.JustinsPlaylist.Playlist; + +public class playlistTest { + + private playlist playlist; + + @BeforeEach + public void setUp() { + playlist = new playlist("Chill Vibes", "Lo-Fi", 120); + } + + @Test + public void testGetDetailsReturnsCorrectInfo() { + String details = playlist.getDetails(); + assertThat(details).isEqualTo("Name: Chill Vibes, Genre: Lo-Fi, Duration: 120"); + } + + @Test + public void testAddSongSuccessfully() { + playlist.addSong("Evening Walk"); + assertThatCode(() -> playlist.playAll()).doesNotThrowAnyException(); + } + + @Test + public void testAddSongThrowsExceptionOnEmptyInput() { + assertThatThrownBy(() -> Playlist.addSong(" ")) + .isInstanceOf(IllegalArgumentException.class) + .hasMessage("Cannot add a null or empty song."); + } + + @Test + public void testPlayAllThrowsExceptionWhenNoSongs() { + assertThatThrownBy(() -> playlist.playAll()) + .isInstanceOf(IllegalStateException.class) + .hasMessage("No songs in the playlist to play."); + } + + @Test + public void testSetAndGetName() { + playlist.setName("Late Night Beats"); + assertThat(playlist.getName()).isEqualTo("Late Night Beats"); + } +} \ No newline at end of file