package com.googlecode.gwt.test.editors;
import com.google.gwt.core.client.GWT;
import com.googlecode.gwt.test.GwtTestTest;
import com.googlecode.gwt.test.editors.AddressEditor.AddressDriver;
import com.googlecode.gwt.test.utils.events.Browser;
import org.junit.Test;
import static org.assertj.core.api.Assertions.assertThat;
public class AddressEditorTest extends GwtTestTest {
@Test
public void editEmptyBean() {
// Given
Address address = new Address();
AddressEditor editor = new AddressEditor();
AddressDriver driver = GWT.create(AddressDriver.class);
driver.initialize(editor);
// Test
driver.edit(address);
// Then
assertThat(editor.street().getValue()).isEqualTo("");
assertThat(editor.zipWithPathEditor().getValue()).isEqualTo("");
assertThat(editor.city.getValue()).isEqualTo("");
assertThat(editor.stateWithPath.getValue()).isNull();
}
@Test
public void editFilledBean() {
// Given
Address address = Address.createFilledAddress();
AddressEditor editor = new AddressEditor();
AddressDriver driver = GWT.create(AddressDriver.class);
driver.initialize(editor);
// Test
driver.edit(address);
// Then
assertThat(editor.street().getValue()).isEqualTo("Avenue des Champs Elysées");
assertThat(editor.zipWithPathEditor().getValue()).isEqualTo("75008");
assertThat(editor.city.getValue()).isEqualTo("Paris");
assertThat(editor.stateWithPath.getValue()).isEqualTo("France");
}
@Test
public void flushWithData() {
// Given
Address address = new Address();
AddressEditor editor = new AddressEditor();
AddressDriver driver = GWT.create(AddressDriver.class);
driver.initialize(editor);
// Start editing
driver.edit(address);
// When : edit widget
Browser.fillText(editor.street(), "Avenue des Champs Elysées");
Browser.fillText(editor.zipWithPathEditor(), "75008");
Browser.fillText(editor.city, "Paris");
// TODO : API Browser for ValueListBox
editor.stateWithPath.setValue("France", true);
driver.flush();
// Then
assertThat(address.getStreet()).isEqualTo("Avenue des Champs Elysées");
assertThat(address.getZip()).isEqualTo("75008");
assertThat(address.getCity()).isEqualTo("Paris");
assertThat(address.getState()).isEqualTo("France");
}
}