diff --git a/.gitignore b/.gitignore index 1cdc9f7..5842df6 100644 --- a/.gitignore +++ b/.gitignore @@ -7,3 +7,5 @@ release.properties dependency-reduced-pom.xml buildNumber.properties .mvn/timing.properties + +\.credentials/ diff --git a/src/main/java/de/kreth/vaadin/clubhelper/vaadinclubhelper/data/Person.java b/src/main/java/de/kreth/vaadin/clubhelper/vaadinclubhelper/data/Person.java index e21bc1c..9ec5b42 100644 --- a/src/main/java/de/kreth/vaadin/clubhelper/vaadinclubhelper/data/Person.java +++ b/src/main/java/de/kreth/vaadin/clubhelper/vaadinclubhelper/data/Person.java @@ -1,6 +1,7 @@ package de.kreth.vaadin.clubhelper.vaadinclubhelper.data; import java.io.Serializable; +import java.time.LocalDate; import java.util.Date; import java.util.List; import java.util.Set; @@ -21,8 +22,7 @@ public class Person extends BaseEntity implements Serializable { private static final long serialVersionUID = -8361264400619997123L; - @Temporal(TemporalType.TIMESTAMP) - private Date birth; + private LocalDate birth; private String password; @@ -71,11 +71,11 @@ public class Person extends BaseEntity implements Serializable { ) private Set events; - public Date getBirth() { - return new Date(this.birth.getTime()); + public LocalDate getBirth() { + return birth; } - public void setBirth(Date birth) { + public void setBirth(LocalDate birth) { this.birth = birth; } diff --git a/src/main/java/de/kreth/vaadin/clubhelper/vaadinclubhelper/ui/components/PersonEditDialog.java b/src/main/java/de/kreth/vaadin/clubhelper/vaadinclubhelper/ui/components/PersonEditDialog.java index 6290d9d..de9b2de 100644 --- a/src/main/java/de/kreth/vaadin/clubhelper/vaadinclubhelper/ui/components/PersonEditDialog.java +++ b/src/main/java/de/kreth/vaadin/clubhelper/vaadinclubhelper/ui/components/PersonEditDialog.java @@ -1,6 +1,5 @@ package de.kreth.vaadin.clubhelper.vaadinclubhelper.ui.components; -import java.time.ZoneId; import java.util.ArrayList; import java.util.List; @@ -8,7 +7,6 @@ import org.vaadin.teemu.switchui.Switch; import com.vaadin.data.Binder; import com.vaadin.data.HasValue.ValueChangeEvent; -import com.vaadin.data.converter.LocalDateToDateConverter; import com.vaadin.ui.Button; import com.vaadin.ui.DateField; import com.vaadin.ui.Panel; @@ -56,7 +54,7 @@ public class PersonEditDialog extends Window { binder = new Binder<>(); binder.forField(textPrename).bind(Person::getPrename, Person::setPrename); binder.forField(textSureName).bind(Person::getSurname, Person::setSurname); - binder.forField(birthday).withConverter(new LocalDateToDateConverter(ZoneId.systemDefault())).bind(Person::getBirth, Person::setBirth); + binder.forField(birthday).bind(Person::getBirth, Person::setBirth); binder.readBean(person); diff --git a/src/main/java/de/kreth/vaadin/clubhelper/vaadinclubhelper/ui/components/PersonGrid.java b/src/main/java/de/kreth/vaadin/clubhelper/vaadinclubhelper/ui/components/PersonGrid.java index 7c68587..bd3dd70 100644 --- a/src/main/java/de/kreth/vaadin/clubhelper/vaadinclubhelper/ui/components/PersonGrid.java +++ b/src/main/java/de/kreth/vaadin/clubhelper/vaadinclubhelper/ui/components/PersonGrid.java @@ -1,6 +1,7 @@ package de.kreth.vaadin.clubhelper.vaadinclubhelper.ui.components; -import java.text.DateFormat; +import java.time.format.DateTimeFormatter; +import java.time.format.FormatStyle; import java.util.ArrayList; import java.util.Arrays; import java.util.Collection; @@ -42,8 +43,7 @@ public class PersonGrid extends CustomComponent { private static final long serialVersionUID = -8148097982839343673L; private transient final Logger log = LoggerFactory.getLogger(getClass()); - private final DateFormat birthFormat = DateFormat - .getDateInstance(DateFormat.MEDIUM); + private final DateTimeFormatter birthFormat = DateTimeFormatter.ofLocalizedDate(FormatStyle.MEDIUM); private final Grid grid; @@ -85,9 +85,7 @@ public class PersonGrid extends CustomComponent { grid.setDataProvider(dataProvider); grid.addColumn(Person::getPrename).setCaption("Vorname"); grid.addColumn(Person::getSurname).setCaption("Nachname"); - grid.addColumn(Person::getBirth, - b -> b != null ? birthFormat.format(b) : "") - .setCaption("Geburtstag"); + grid.addColumn(Person::getBirth, b -> b != null ? birthFormat.format(b) : "").setCaption("Geburtstag"); grid.addComponentColumn(this::buildDeleteButton); grid.setSelectionMode(SelectionMode.MULTI); @@ -103,13 +101,13 @@ public class PersonGrid extends CustomComponent { setCompositionRoot(panel); } - private Button buildDeleteButton(Person p) { - Button button = new Button(VaadinIcons.EDIT); - button.addStyleName(ValoTheme.BUTTON_SMALL); - button.addClickListener(e -> showPersonDetails(p)); - return button; - } - + private Button buildDeleteButton(Person p) { + Button button = new Button(VaadinIcons.EDIT); + button.addStyleName(ValoTheme.BUTTON_SMALL); + button.addClickListener(e -> showPersonDetails(p)); + return button; + } + private void showPersonDetails(Person p) { if (onPersonEdit != null) { onPersonEdit.accept(p); @@ -127,7 +125,7 @@ public class PersonGrid extends CustomComponent { private void updateFilter() { Predicate filter = p -> true; - if (selectedOnlyFilter!= null && selectedOnlyFilter.equals(Boolean.TRUE)) { + if (selectedOnlyFilter != null && selectedOnlyFilter.equals(Boolean.TRUE)) { Set selected = grid.getSelectedItems(); filter = p -> selected.contains(p); } @@ -136,7 +134,7 @@ public class PersonGrid extends CustomComponent { groupMemberFilter.forEach(gm -> { groupIds.add(gm.getId()); }); - + filter = filter.and(p -> { { List personGroups = p.getPersongroups(); @@ -149,7 +147,7 @@ public class PersonGrid extends CustomComponent { } }); } - + setFilter(filter); } diff --git a/src/test/java/de/kreth/vaadin/clubhelper/vaadinclubhelper/dao/ClubEventDataTest.java b/src/test/java/de/kreth/vaadin/clubhelper/vaadinclubhelper/dao/ClubEventDataTest.java index 68b8dae..5a7eabd 100644 --- a/src/test/java/de/kreth/vaadin/clubhelper/vaadinclubhelper/dao/ClubEventDataTest.java +++ b/src/test/java/de/kreth/vaadin/clubhelper/vaadinclubhelper/dao/ClubEventDataTest.java @@ -9,10 +9,10 @@ import java.sql.Connection; import java.sql.ResultSet; import java.sql.SQLException; import java.sql.Statement; +import java.time.LocalDate; import java.time.ZoneId; import java.time.ZonedDateTime; import java.util.ArrayList; -import java.util.Date; import java.util.HashSet; import java.util.List; import java.util.Set; @@ -35,7 +35,7 @@ public class ClubEventDataTest extends AbstractDatabaseTest { Person p = new Person(); p.setPrename("prename"); p.setSurname("surname"); - p.setBirth(new Date()); + p.setBirth(LocalDate.now()); Transaction tx = session.beginTransaction(); session.save(p); tx.commit(); @@ -43,26 +43,26 @@ public class ClubEventDataTest extends AbstractDatabaseTest { } public List insertPersons(int count) { - + List inserted = new ArrayList<>(); Transaction tx = session.beginTransaction(); - for (int i=0; i0); + for (Person p : inserted) { + assertTrue("not saved: " + p, p.getId() > 0); } return inserted; } - + @Test public void testInsertEvent() { ClubEvent ev = creteEvent(); @@ -80,8 +80,7 @@ public class ClubEventDataTest extends AbstractDatabaseTest { session.save(ev); tx.commit(); - Query query = session.createNamedQuery("ClubEvent.findAll", - ClubEvent.class); + Query query = session.createNamedQuery("ClubEvent.findAll", ClubEvent.class); List result = query.list(); assertEquals(1, result.size()); } @@ -108,15 +107,15 @@ public class ClubEventDataTest extends AbstractDatabaseTest { ClubeventHasPerson link = loadEventPersons.get(0); assertEquals(person.getId(), link.getPersonId()); assertEquals(ev.getId(), link.getClubEventId()); - + } private List loadEventPersons() { final AtomicBoolean finishedWork = new AtomicBoolean(false); List link = new ArrayList<>(); - + session.doWork(new Work() { - + @Override public void execute(Connection connection) throws SQLException { Statement stm = connection.createStatement(); @@ -128,14 +127,14 @@ public class ClubEventDataTest extends AbstractDatabaseTest { ep.setPersonId(rs.getInt("person_id")); link.add(ep); } - + finishedWork.set(true); } }); assertTrue(finishedWork.get()); return link; } - + @Test public void changeEventsPersons() { ClubEvent ev = creteEvent(); @@ -150,12 +149,12 @@ public class ClubEventDataTest extends AbstractDatabaseTest { person2.setId(person.getId() + 1); person2.setPrename(person.getPrename() + "_2"); person2.setSurname(person.getSurname() + "_2"); - person2.setBirth(new Date()); + person2.setBirth(LocalDate.now()); tx = session.beginTransaction(); session.save(person2); tx.commit(); - + IdentifierLoadAccess idLoadAccess = session.byId(ClubEvent.class); ClubEvent loaded = idLoadAccess.load(ev.getId()); assertNotNull(loaded); @@ -175,7 +174,7 @@ public class ClubEventDataTest extends AbstractDatabaseTest { List entries = loadEventPersons(); assertEquals(2, entries.size()); } - + @Test public void testChangeEventParticipantsRapidly() { @@ -184,10 +183,10 @@ public class ClubEventDataTest extends AbstractDatabaseTest { Transaction tx = session.beginTransaction(); session.save(ev); tx.commit(); - + ev = session.byId(ClubEvent.class).load(ev.getId()); List persons = insertPersons(6); - for (Person p: persons) { + for (Person p : persons) { ev.getPersons().add(p); tx = session.beginTransaction(); session.merge(ev); @@ -210,15 +209,12 @@ public class ClubEventDataTest extends AbstractDatabaseTest { List result = loadEventPersons(); assertEquals(6, result.size()); } - + private ClubEvent creteEvent() { - ClubEvent ev = ClubEventBuilder.builder().withId("id").withAllDay(true) - .withCaption("caption").withDescription("description") - .withStart(ZonedDateTime.of(2018, 8, 13, 0, 0, 0, 0, - ZoneId.systemDefault())) - .withEnd(ZonedDateTime.of(2018, 8, 13, 0, 0, 0, 0, - ZoneId.systemDefault())) - .withiCalUID("iCalUID") + ClubEvent ev = ClubEventBuilder.builder().withId("id").withAllDay(true).withCaption("caption") + .withDescription("description") + .withStart(ZonedDateTime.of(2018, 8, 13, 0, 0, 0, 0, ZoneId.systemDefault())) + .withEnd(ZonedDateTime.of(2018, 8, 13, 0, 0, 0, 0, ZoneId.systemDefault())).withiCalUID("iCalUID") .withOrganizerDisplayName("organizerDisplayName").build(); return ev; } diff --git a/src/test/java/de/kreth/vaadin/clubhelper/vaadinclubhelper/dao/PersonDaoTest.java b/src/test/java/de/kreth/vaadin/clubhelper/vaadinclubhelper/dao/PersonDaoTest.java index 7a79a78..faf7fbe 100644 --- a/src/test/java/de/kreth/vaadin/clubhelper/vaadinclubhelper/dao/PersonDaoTest.java +++ b/src/test/java/de/kreth/vaadin/clubhelper/vaadinclubhelper/dao/PersonDaoTest.java @@ -1,24 +1,24 @@ package de.kreth.vaadin.clubhelper.vaadinclubhelper.dao; -import static org.junit.jupiter.api.Assertions.*; +import static org.junit.Assert.assertNotNull; +import static org.junit.jupiter.api.Assertions.assertEquals; -import java.util.GregorianCalendar; +import java.time.LocalDate; import java.util.List; import org.hibernate.Transaction; -import org.junit.jupiter.api.BeforeEach; -import org.junit.jupiter.api.Test; - -import com.ibm.icu.util.Calendar; +import org.junit.Before; +import org.junit.Test; import de.kreth.vaadin.clubhelper.vaadinclubhelper.data.Person; -class PersonDaoTest extends AbstractDatabaseTest { +public class PersonDaoTest extends AbstractDatabaseTest { private PersonDaoImpl personDao; private Person person; - @BeforeEach + @Override + @Before public void setUp() throws Exception { super.setUp(); personDao = new PersonDaoImpl(); @@ -26,16 +26,19 @@ class PersonDaoTest extends AbstractDatabaseTest { person = new Person(); person.setPrename("prename"); person.setSurname("surname"); - person.setBirth(new GregorianCalendar(2018, Calendar.NOVEMBER, 8).getTime()); +// Date time = new GregorianCalendar(2018, Calendar.NOVEMBER, 8).getTime(); + person.setBirth(LocalDate.of(2018, 11, 8)); person.setPassword("password"); } @Test - void testSave() { + public void testSave() { storePerson(); List stored = session.createNamedQuery(Person.QUERY_FINDALL, Person.class).list(); assertEquals(1, stored.size()); assertEquals(person, stored.get(0)); + assertEquals(person, personDao.get(person.getId())); + } public void storePerson() { @@ -45,7 +48,7 @@ class PersonDaoTest extends AbstractDatabaseTest { } @Test - void testUpdate() { + public void testUpdate() { storePerson(); person.setSurname("surname2"); person.setPrename("prename2"); @@ -59,18 +62,22 @@ class PersonDaoTest extends AbstractDatabaseTest { } @Test - void testListAll() { + public void testListAll() { storePerson(); session.detach(person); person = new Person(); person.setSurname("surname2"); person.setPrename("prename2"); - person.setBirth(new GregorianCalendar(2018, Calendar.NOVEMBER, 8).getTime()); + person.setBirth(LocalDate.of(2018, 11, 8)); person.setPassword("password"); storePerson(); - List stored = session.createNamedQuery(Person.QUERY_FINDALL, Person.class).list(); + List stored = personDao.listAll(); assertEquals(2, stored.size()); - + } + @Test + public void testPersonGroup() { + assertNotNull(new GroupDaoImpl()); + } }