package app.view.note;
import javax.swing.JFrame;
import org.junit.After;
import org.junit.Assert;
import org.junit.Before;
import org.junit.Test;
import org.ytreza.data.table.exception.ItemException;
import org.ytreza.data.table.exception.UnableToInitializeException;
import org.ytreza.data.table.exception.UnableToSaveException;
import org.ytreza.data.table.exception.UnregisteredTableError;
import org.ytreza.view.field.FieldText;
import org.ytreza.view.field.list.FieldList;
import app.ApplicationTest;
import app.database.TableFactory;
public class NoteControlerTest {
private MockNoteControler controler;
private TableFactory tableFactory;
@Before
public void setUp() throws Exception {
ApplicationTest application = ApplicationTest.getApplication();
tableFactory = application.getFactoryJdbc();
controler = new MockNoteControler("note", tableFactory);
controler.start();
}
@After
public void tearDown() throws Exception {
}
@Test
public void testCreateNote() {
Assert.fail("to do");
// controler.createNote();
// ModelNote note = controler.getNote();
// assertTrue(note.isNew());
// assertTrue(controler.getSubject().equals(""));
// assertTrue(controler.getText().equals(""));
}
@Test
public void testCreateNoteAfterAnotherNote() {
Assert.fail("to do");
// controler.fieldSubject.setText("hello");
// controler.fieldText.setText("world");
// controler.createNote();
// ModelNote note = controler.getNote();
// assertTrue(note.isNew());
// assertTrue(controler.getSubject().equals(""));
// assertTrue(controler.getText().equals(""));
}
@Test
public void testSetSubjectAndSave() throws ItemException {
Assert.fail("to do");
// controler.createNote();
// controler.fieldSubject.setText("subject");
// controler.onLostFocusOnSubject();
// ModelNote note = controler.getNote();
// assertFalse(note.isNew());
// assertEquals("subject", note.getSubject());
// assertEquals("", note.getText());
}
@Test
public void testSetOnlyTextAndDontSave() throws ItemException {
Assert.fail("to do");
// controler.createNote();
// controler.fieldText.setText("text");
// controler.onLostFocusOnText();
// ModelNote note = controler.getNote();
// assertTrue(note.isNew());
}
@Test
public void testSetSubjectThenTextAndSave() throws ItemException {
Assert.fail("to do");
// controler.createNote();
// controler.fieldSubject.setText("subject");
// controler.onLostFocusOnSubject();
// controler.fieldText.setText("text");
// controler.onLostFocusOnText();
// ModelNote note = controler.getNote();
// assertFalse(note.isNew());
// assertEquals("subject", note.getSubject());
// assertEquals("text", note.getText());
}
@Test
public void testSelectNote() throws ItemException, UnregisteredTableError, UnableToSaveException {
Assert.fail("to do test");
// TableNote table = tableFactory.getTableNote();
// ModelNote note = table.createItem();
// note.setSubject("test subject");
// note.setText("test text");
//
// note.save();
//
// controler.selectNote(note);
// assertEquals(note.getSubject(), controler.getSubject());
// assertEquals(note.getText(), controler.getText());
//
// controler.fieldSubject.setText("new subject");
// controler.onLostFocusOnSubject();
// controler.fieldText.setText("new text");
// controler.onLostFocusOnText();
//
// ModelNote note2 = controler.getNote();
//
// assertEquals(note.getId(), note2.getId());
}
@Test
public void testMultiSelectNote() throws ItemException, UnableToSaveException, ItemException {
Assert.fail("to do");
// TableNote table = tableFactory.getTableNote();
// ModelNote firstNote = table.createItem();
// firstNote.setSubject("test subject");
// firstNote.setText("test text");
// firstNote.setTagList("a");
// firstNote.save();
//
// ModelNote secondNote = table.createItem();
// secondNote.setSubject("yop");
// secondNote.setText("youpi");
// secondNote.save();
//
// controler.selectNote(firstNote);
// controler.selectNote(secondNote);
// controler.selectNote(firstNote);
// controler.selectNote(secondNote);
// controler.selectNote(firstNote);
//
// assertEquals("a", controler.getTagList());
}
@Test
public void testUpdateTag() throws ItemException, UnableToSaveException, ItemException {
Assert.fail("to do");
// TableNote table = tableFactory.getTableNote();
// ModelNote firstNote = table.createItem();
// firstNote.setSubject("test subject");
// firstNote.setText("test text");
// firstNote.setTagList("a");
// firstNote.save();
//
// controler.selectNote(firstNote);
//
// controler.fieldTagNote.setText("a;toto");
// controler.onLostFocusOnTagNote();
//
// assertEquals("a;toto", controler.getTagList());
}
@Test
public void testSaveNoteWithApostrophe() throws ItemException, UnableToSaveException, ItemException, ItemException, UnregisteredTableError, UnableToInitializeException {
Assert.fail("to do");
// TableNote table = tableFactory.getTableNote();
// ModelNote firstNote = table.createItem();
// firstNote.setSubject("test");
// firstNote.setText("aaa");
// firstNote.setTagList("a");
// firstNote.save();
//
// controler.selectNote(firstNote);
//
// controler.fieldText.setText("l'on suggere");
// controler.onLostFocusOnText();
//
// controler.saveNote();
//
// ModelNote secondNote = table.getItem(firstNote.getId());
// assertEquals("l'on suggere", secondNote.getText());
}
}
class MockNoteControler extends NoteControler {
public FieldSubject fieldSubject;
public FieldText fieldText;
public FieldText fieldTagNote;
public FieldList fieldTagList;
public FieldList fieldTagSelected;
public MockNoteControler(String name, TableFactory tableFactory) throws UnregisteredTableError {
super(name, tableFactory);
fieldSubject = new FieldSubject(this);
fieldText = new FieldText();
fieldTagNote = new FieldText();
fieldTagList = new FieldList();
fieldTagSelected = new FieldList();
setWindow(new JFrame());
setFieldSubject(fieldSubject);
setFieldText(fieldText);
setFieldTagNote(fieldTagNote);
setFieldTagUnselected(fieldTagList);
setFieldTagSelected(fieldTagSelected);
}
public String getSubject() {
return fieldSubject.getText();
}
public String getText() {
return fieldText.getText();
}
public String getTagList() {
return fieldTagNote.getText();
}
}