/*
* To change this license header, choose License Headers in Project Properties.
* To change this template file, choose Tools | Templates
* and open the template in the editor.
*/
package com.freedomotic.plugins.devices.freedomchat;
import com.freedomotic.api.API;
import com.freedomotic.app.FreedomoticInjector;
import com.freedomotic.reactions.Command;
import com.freedomotic.reactions.Trigger;
import com.google.inject.Inject;
import org.junit.After;
import org.junit.AfterClass;
import org.junit.Before;
import org.junit.BeforeClass;
import org.junit.Test;
import static org.junit.Assert.*;
import org.junit.runner.RunWith;
/**
*
* @author matteo
*/
@RunWith(GuiceJUnitRunner.class)
@GuiceJUnitRunner.GuiceInjectors({FreedomoticInjector.class})
public class MessageServiceTest {
@Inject
MessageService msg;
@Inject
API api;
public MessageServiceTest() {
}
@BeforeClass
public static void setUpClass() {
}
@AfterClass
public static void tearDownClass() {
}
@Before
public void setUp() {
Trigger t = new Trigger();
t.setName("pluto");
api.triggers().create(t);
Command c = new Command();
c.setName("pippo");
c.setReceiver("a.b.c");
api.commands().create(c);
}
@After
public void tearDown() {
api.commands().deleteAll();
api.triggers().deleteAll();
}
/**
* Test help
*/
@Test
public void testHelp() {
String mess = "help";
String expResult = "Freedomotic CHAT help:";
String result = msg.manageMessage(mess);
assertTrue(result.startsWith(expResult));
}
/**
* Test list
*/
@Test
public void testList() {
String mess = "list";
String expResult = "Allowed";
String result = msg.manageMessage(mess);
assertTrue(result.startsWith(expResult));
}
/**
* Test asterisk
*/
@Test
public void testCommand() {
String mess = "*";
String expResult = "? pippo";
String result = msg.manageMessage(mess);
assertTrue(result.startsWith(expResult));
mess = "pippo";
expResult = mess + "\n DONE.";
result = msg.manageMessage(mess);
assertEquals(expResult, result);
mess = "abcde";
expResult = "No available commands similar to: "+ mess;
result = msg.manageMessage(mess);
assertEquals(expResult, result);
}
/**
* Test asterisk
*/
@Test
public void testTrigger() {
String mess = "list trigger";
String expResult = "? \npluto\n";
String result = msg.manageMessage(mess);
assertEquals(expResult, result);
}
/**
* Test asterisk
*/
@Test
public void testIFTHEN() {
String mess = "if pluto then pippo";
String expResult = "DONE";
String result = msg.manageMessage(mess);
assertEquals(expResult, result);
mess = "if asdfakjsd then sdfasdas";
expResult = "No available commands similar to: sdfasdas";
result = msg.manageMessage(mess);
assertEquals(expResult, result);
}
}