Skip to content

Commit

Permalink
Added test for line covarage in main
Browse files Browse the repository at this point in the history
  • Loading branch information
Lucia560 committed Feb 12, 2024
1 parent bbeed78 commit 5d092eb
Show file tree
Hide file tree
Showing 2 changed files with 48 additions and 4 deletions.
7 changes: 7 additions & 0 deletions src/test/java/org/fungover/haze/AuthTest.java
Original file line number Diff line number Diff line change
Expand Up @@ -4,9 +4,16 @@
import org.junit.jupiter.api.Test;
import org.mockito.Mock;

import java.io.ByteArrayOutputStream;
import java.io.DataOutputStream;
import java.io.IOException;
import java.io.OutputStream;
import java.net.Socket;

import static org.assertj.core.api.AssertionsForClassTypes.assertThat;
import static org.junit.jupiter.api.Assertions.assertDoesNotThrow;
import static org.mockito.ArgumentMatchers.any;
import static org.mockito.Mockito.*;


class AuthTest {
Expand Down
45 changes: 41 additions & 4 deletions src/test/java/org/fungover/haze/MainTest.java
Original file line number Diff line number Diff line change
Expand Up @@ -4,16 +4,18 @@
import org.junit.jupiter.params.ParameterizedTest;
import org.junit.jupiter.params.provider.CsvSource;
import org.junit.jupiter.params.provider.ValueSource;
import org.mockito.Mockito;

import java.io.ByteArrayOutputStream;
import java.io.PrintStream;
import java.io.*;
import java.net.Socket;
import java.util.Arrays;
import java.util.LinkedList;
import java.util.List;

import static org.assertj.core.api.Assertions.assertThat;
import static org.fungover.haze.Main.printThreadDebug;
import static org.junit.jupiter.api.Assertions.assertEquals;
import static org.junit.jupiter.api.Assertions.assertFalse;
import static org.junit.jupiter.api.Assertions.*;
import static org.mockito.Mockito.*;


class MainTest {
Expand All @@ -26,6 +28,7 @@ void callingExecuteCommandWithValidNonExistingInputReturnsColonOne() {
assertThat(Main.executeCommand(database, List.of("SETNX", "1", "This is a value"), hazeList)).isEqualTo(":1\r\n");
}


@Test
void callingExecuteCommandWithInvalidInputStringReturnsErrorMessage() {
assertThat(Main.executeCommand(database, List.of(""), hazeList)).isEqualTo("-ERR no command provided\r\n");
Expand Down Expand Up @@ -148,4 +151,38 @@ void authCommandReceivedTest(boolean isPasswordSet, String command, String passw

assertEquals(expected, result);
}

@Test
void callingExecuteCommandWithUnknownCommandReturnsErrorMessage() {
assertThat(Main.executeCommand(database, List.of("NOSUCHCOMMAND"), hazeList))
.isEqualTo("-ERR unknown command\r\n");
}

@Test
void callingSetWithIncorrectNumberOfArgumentsReturnsErrorMessage() {
String errorMessage = Main.executeCommand(database, List.of("SET", "onlyOneArgument"), hazeList);
String expectedErrorMessage = "-ERR wrong number of arguments for command\r\n";
assertEquals(expectedErrorMessage, errorMessage);
}

@Test
public void whenExecuteSetCommand_thenCorrectMethodIsCalled() {
HazeDatabase mockDatabase = mock(HazeDatabase.class);
HazeList mockHazeList = mock(HazeList.class);
List<String> inputList = Arrays.asList("SET", "key", "value");

when(mockDatabase.set(inputList)).thenReturn("+OK\r\n");

String result = Main.executeCommand(mockDatabase, inputList, mockHazeList);

verify(mockDatabase).set(inputList);
assertEquals("+OK\r\n", result);
}







}

0 comments on commit 5d092eb

Please sign in to comment.