package org.lightadmin.crudOperations.edit;
import org.junit.After;
import org.junit.Before;
import org.junit.Test;
import org.lightadmin.LoginOnce;
import org.lightadmin.RunWithConfiguration;
import org.lightadmin.SeleniumIntegrationTest;
import org.lightadmin.config.FilterTestEntityConfiguration;
import org.lightadmin.data.Domain;
import org.lightadmin.page.EditPage;
import org.lightadmin.page.ListViewPage;
import org.lightadmin.page.ShowViewPage;
import static org.lightadmin.util.DomainAsserts.assertFieldValues;
@RunWithConfiguration( {FilterTestEntityConfiguration.class})
@LoginOnce( domain = Domain.FILTER_TEST_DOMAIN )
public class PrimitiveFields extends SeleniumIntegrationTest {
private ListViewPage listViewPage;
private EditPage editPage;
private ShowViewPage showView;
@Before
public void refreshListView() {
listViewPage = getStartPage().navigateToDomain( Domain.FILTER_TEST_DOMAIN );
}
@After
public void cleanup() {
repopulateDatabase();
}
//Covers LA-34: EditView: numeric fields cannot be cleared (https://github.com/max-dev/light-admin/issues/34)
@Test
public void canBeCleared() {
clearAllFieldValuesAndSave();
assertFieldValues(
new String[]{ " ", "0", "0", "0", "0", "No" },
showView.getFieldValuesExcludingId() );
}
@Test
public void canBeModified() {
modifyFieldValuesAndSave();
assertFieldValues(
new String[]{ "new text value", "1234", "4321", "234.52", "5789.52", "Yes" },
showView.getFieldValuesExcludingId() );
}
private void clearAllFieldValuesAndSave() {
editPage = listViewPage.editItem( 4 );
editPage.clear( "textField" );
editPage.clear( "integerField" );
editPage.clear( "primitiveIntegerField" );
editPage.clear( "decimalField" );
editPage.check( "booleanField" );
showView = editPage.submit();
}
private void modifyFieldValuesAndSave() {
editPage = listViewPage.editItem( 3 );
editPage.type( "textField", "new text value" );
editPage.type( "integerField", "1234" );
editPage.type( "primitiveIntegerField", "4321" );
editPage.type( "decimalField", "234.52" );
editPage.check( "booleanField" );
showView = editPage.submit();
}
}