Code: Select all
import com.example.pixel_user_api.data.entity.EmailData;
import org.mapstruct.Mapper;
import org.mapstruct.Mapping;
@Mapper
public interface EmailMapper {
@Mapping(source = "email", target = ".")
String toString(EmailData emailData); // doesn't work
@Mapping(source = ".", target = "email")
EmailData toEmailData(String email); // works
}
< /code>
import lombok.Getter;
import lombok.Setter;
@Getter
@Setter
public class EmailData {
private Long id;
private String email;
}
< /code>
Hier ist das, was das Mapstruct generiert hat: < /p>
@Override
public String toString(EmailData emailData) {
if ( emailData == null ) {
return null;
}
String string = new String();
return string;
}
@Override
public EmailData toEmailData(String email) {
if ( email == null ) {
return null;
}
EmailData emailData = new EmailData();
emailData.setEmail( email );
return emailData;
}
Code: Select all
return emailData.getEmail()
import org.junit.jupiter.api.Test;
import org.mapstruct.factory.Mappers;
import static org.assertj.core.api.Assertions.assertThat;
class EmailDataTest {
@Test
void testMapper() {
String expectedEmail = "example@mail.com";
EmailData emailData = new EmailData();
emailData.setEmail(expectedEmail);
EmailMapper mapper = Mappers.getMapper(EmailMapper.class);
String actualEmail = mapper.toString(emailData);
assertThat(actualEmail).isEqualTo(expectedEmail); // fails here
}
}
< /code>
org.opentest4j.AssertionFailedError:
expected: "example@mail.com"
but was: ""
Expected :"example@mail.com"
Actual :""
< /code>
Java 17, MapStruct 1.6.3