holy ravioli
This commit is contained in:
@@ -5,7 +5,4 @@ import java.util.Set;
|
||||
public class AttendeeDTO {
|
||||
|
||||
public String name;
|
||||
|
||||
public Set<EventDateDTO> dates;
|
||||
|
||||
}
|
||||
|
||||
@@ -1,10 +1,11 @@
|
||||
package be.naaturel.letsmeet.dto.httpRequest;
|
||||
|
||||
import java.util.Map;
|
||||
import java.util.Set;
|
||||
|
||||
public class EventDTO {
|
||||
|
||||
public String name;
|
||||
public Set<AttendeeDTO> attendees;
|
||||
public Map<String, Set<AttendeeDTO>> dates;
|
||||
|
||||
}
|
||||
|
||||
@@ -22,13 +22,12 @@ public class AttendeeDTOMapper implements Mapper<Attendee, AttendeeDTO> {
|
||||
public AttendeeDTO toEntity(Attendee d) {
|
||||
AttendeeDTO dto = new AttendeeDTO();
|
||||
dto.name = d.getName();
|
||||
dto.dates = dateMapper.toEntities(d.getDates(), HashSet::new);
|
||||
return dto;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Attendee toModel(AttendeeDTO d) {
|
||||
return new Attendee(d.name, dateMapper.toModels(d.dates, HashSet::new));
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
@@ -1,30 +1,58 @@
|
||||
package be.naaturel.letsmeet.mappers.requests;
|
||||
|
||||
import be.naaturel.letsmeet.core.models.EventDate;
|
||||
import be.naaturel.letsmeet.dto.httpRequest.EventDTO;
|
||||
import be.naaturel.letsmeet.dto.httpRequest.AttendeeDTO;
|
||||
import be.naaturel.letsmeet.dto.httpRequest.EventDateDTO;
|
||||
import be.naaturel.letsmeet.mappers.Mapper;
|
||||
import be.naaturel.letsmeet.core.models.Event;
|
||||
import be.naaturel.letsmeet.core.models.Attendee;
|
||||
|
||||
import java.util.Collection;
|
||||
import java.util.HashMap;
|
||||
import java.util.HashSet;
|
||||
import java.util.Set;
|
||||
import java.util.function.Supplier;
|
||||
|
||||
public class EventDTOMapper implements Mapper<Event, EventDTO> {
|
||||
|
||||
private final Mapper<Attendee, AttendeeDTO> attendeeMapper = new AttendeeDTOMapper();
|
||||
private final Mapper<EventDate, EventDateDTO> dateMapper = new EventDateDTOMapper();
|
||||
|
||||
@Override
|
||||
public EventDTO toEntity(Event event) {
|
||||
EventDTO eventDTO = new EventDTO();
|
||||
eventDTO.name = event.getName();
|
||||
eventDTO.attendees = attendeeMapper.toEntities(event.getAttendees(), HashSet::new);
|
||||
//eventDTO.dates = attendeeMapper.toEntities(event.getAttendees(), HashSet::new);
|
||||
|
||||
//TODO : MUST BE CLEANED
|
||||
eventDTO.dates = new HashMap<>();
|
||||
event.getAttendees().forEach(a -> {
|
||||
a.getDates().forEach(d -> {
|
||||
EventDateDTO dtoD = dateMapper.toEntity(d);
|
||||
AttendeeDTO dtoA = attendeeMapper.toEntity(a);
|
||||
String key = String.valueOf(d.getTimeStamp());
|
||||
if(eventDTO.dates.containsKey(key)){
|
||||
eventDTO.dates.get(key).add(dtoA);
|
||||
} else {
|
||||
Set<AttendeeDTO> s = new HashSet<>();
|
||||
s.add(dtoA);
|
||||
eventDTO.dates.put(key, s);
|
||||
}
|
||||
});
|
||||
});
|
||||
|
||||
return eventDTO;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Event toModel(EventDTO dto) {
|
||||
return new Event(dto.name, attendeeMapper.toModels(dto.attendees, HashSet::new));
|
||||
//return new Event(dto.name, attendeeMapper.toModels(dto.dates, HashSet::new));
|
||||
Set<Attendee> set = new HashSet<>();
|
||||
for (String key : dto.dates.keySet()) {
|
||||
set.addAll(attendeeMapper.toModels(dto.dates.get(key), HashSet::new));
|
||||
}
|
||||
return new Event(dto.name, set);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
package be.naaturel.letsmeet.mappers;
|
||||
|
||||
import be.naaturel.letsmeet.dto.database.EventDateEntity;
|
||||
import be.naaturel.letsmeet.mappers.Mapper;
|
||||
import be.naaturel.letsmeet.mappers.database.EventDateMapper;
|
||||
import be.naaturel.letsmeet.core.models.EventDate;
|
||||
import org.junit.jupiter.api.BeforeAll;
|
||||
|
||||
@@ -0,0 +1,56 @@
|
||||
package be.naaturel.letsmeet.mappers.dto;
|
||||
|
||||
import be.naaturel.letsmeet.core.models.Event;
|
||||
import be.naaturel.letsmeet.dto.httpRequest.EventDTO;
|
||||
import be.naaturel.letsmeet.mappers.Mapper;
|
||||
import be.naaturel.letsmeet.mappers.requests.EventDTOMapper;
|
||||
import be.naaturel.letsmeet.mock.dto.MockEventDTO;
|
||||
import be.naaturel.letsmeet.mock.models.MockEventModel;
|
||||
import org.junit.jupiter.api.BeforeAll;
|
||||
import org.junit.jupiter.api.Test;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import java.util.Set;
|
||||
|
||||
import static org.junit.jupiter.api.Assertions.assertEquals;
|
||||
|
||||
public class EventDTOMapperTest {
|
||||
|
||||
private static MockEventDTO mockDto;
|
||||
private static MockEventModel mockModel;
|
||||
private static Mapper<Event, EventDTO> mapper;
|
||||
|
||||
@BeforeAll
|
||||
static void setup(){
|
||||
mockDto = new MockEventDTO();
|
||||
mockModel = new MockEventModel();
|
||||
mapper = new EventDTOMapper();
|
||||
}
|
||||
|
||||
@Test
|
||||
void single_dto_to_model_test(){
|
||||
Event res = mapper.toModel(mockDto);
|
||||
assertEquals(res.getName(), mockDto.name);
|
||||
}
|
||||
|
||||
@Test
|
||||
void single_model_to_dto_test(){
|
||||
EventDTO res = mapper.toEntity(mockModel);
|
||||
assertEquals(res.name, mockModel.getName());
|
||||
}
|
||||
|
||||
@Test
|
||||
void multiple_dto_to_models_test(){
|
||||
List<Event> res = mapper.toModels(Set.of(mockDto), ArrayList::new);
|
||||
assertEquals(res.size(), 1);
|
||||
assertEquals(res.getFirst().getName(), mockDto.name);
|
||||
}
|
||||
|
||||
@Test
|
||||
void mulitple_models_to_dto_test(){
|
||||
List<EventDTO> res = mapper.toEntities(Set.of(mockModel), ArrayList::new);
|
||||
assertEquals(res.size(), 1);
|
||||
assertEquals(res.getFirst().name, mockModel.getName());
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,11 @@
|
||||
package be.naaturel.letsmeet.mock.dto;
|
||||
|
||||
import be.naaturel.letsmeet.dto.httpRequest.AttendeeDTO;
|
||||
|
||||
public class MockAttendeeDTO extends AttendeeDTO {
|
||||
|
||||
public MockAttendeeDTO(){
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,24 @@
|
||||
package be.naaturel.letsmeet.mock.dto;
|
||||
|
||||
import be.naaturel.letsmeet.core.models.Attendee;
|
||||
import be.naaturel.letsmeet.dto.httpRequest.AttendeeDTO;
|
||||
import be.naaturel.letsmeet.dto.httpRequest.EventDTO;
|
||||
|
||||
import java.util.HashMap;
|
||||
import java.util.HashSet;
|
||||
import java.util.Set;
|
||||
|
||||
public class MockEventDTO extends EventDTO {
|
||||
|
||||
public MockEventDTO() {
|
||||
this.name = "Mocked event";
|
||||
this.dates = new HashMap<>();
|
||||
populate(0, new HashSet<>());
|
||||
populate(1, new HashSet<>());
|
||||
populate(2, new HashSet<>());
|
||||
}
|
||||
|
||||
private void populate(long timestamp, Set<AttendeeDTO> attendees){
|
||||
this.dates.put(String.valueOf(timestamp), attendees);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,11 @@
|
||||
package be.naaturel.letsmeet.mock.jpa;
|
||||
|
||||
import be.naaturel.letsmeet.dto.database.EventEntity;
|
||||
|
||||
public class MockEventEntity extends EventEntity {
|
||||
|
||||
public MockEventEntity(){
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,13 @@
|
||||
package be.naaturel.letsmeet.mock.models;
|
||||
|
||||
import be.naaturel.letsmeet.core.models.Attendee;
|
||||
import be.naaturel.letsmeet.core.models.Event;
|
||||
|
||||
import java.util.HashSet;
|
||||
import java.util.Set;
|
||||
|
||||
public class MockEventModel extends Event {
|
||||
public MockEventModel() {
|
||||
super("Mock event model", new HashSet<>());
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user