package com.jenjinstudios.client.net;
import com.jenjinstudios.core.MessageIO;
import com.jenjinstudios.core.io.Message;
import com.jenjinstudios.core.io.MessageInputStream;
import com.jenjinstudios.core.io.MessageOutputStream;
import org.testng.Assert;
import org.testng.annotations.Test;
import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.verify;
/**
* Used to test the Client class.
* @author Caleb Brinkman
*/
public class ClientTest
{
/**
* Test the AddRepeatedTask method.
*/
@Test
public void testAddRepeatedTask() {
MessageInputStream mis = mock(MessageInputStream.class);
MessageOutputStream mos = mock(MessageOutputStream.class);
MessageIO messageIO = new MessageIO(mis, mos);
Runnable r = mock(Runnable.class);
Client client = new Client(messageIO);
client.addRepeatedTask(r);
client.runRepeatedTasks();
verify(r).run();
}
/**
* Test the generateLogoutRequest method.
*/
@Test
public void testGenerateLogoutRequest() {
Message message = AuthClient.generateLogoutRequest();
Assert.assertEquals(message.name, "LogoutRequest", "Expectet LogoutRequest message");
}
/**
* Test the generateLoginRequest method.
*/
@Test
public void testGenerateLoginRequest() {
Message message = AuthClient.generateLoginRequest(new ClientUser("Foo", "Bar"));
Assert.assertEquals(message.name, "LoginRequest", "Expected login request");
Assert.assertEquals(message.getArgument("username"), "Foo", "Username was not expected.");
Assert.assertEquals(message.getArgument("password"), "Bar", "Password was not expected.");
}
}