- Create command under /authme debug that allows to change the 'nullable' status of MySQL columns (currently last date and email only) - We need to offer a default value for forum integrations that have a NOT NULL email column. Offering a command avoids us from force-migrating existing databases while still offering migrations in both directions - Change in default value handling: lack of values are not handled by setting default values to the PlayerAuth anymore, and reading a default value from the database into a PlayerAuth will be translated into null by the PlayerAuth builder - When a new database is created, email and lastlogin are now nullable and lack a default a value Open points: - Finish MySqlDefaultChangerTest - Revise purging logic (#792) - Allow to have more columns nullable (#814)
This commit is contained in:
@@ -0,0 +1,63 @@
|
||||
package fr.xephi.authme.data.auth;
|
||||
|
||||
import org.junit.Test;
|
||||
|
||||
import static org.hamcrest.MatcherAssert.assertThat;
|
||||
import static org.hamcrest.Matchers.equalTo;
|
||||
import static org.hamcrest.Matchers.nullValue;
|
||||
import static org.junit.Assert.fail;
|
||||
|
||||
/**
|
||||
* Test for {@link PlayerAuth} and its builder.
|
||||
*/
|
||||
public class PlayerAuthTest {
|
||||
|
||||
@Test
|
||||
public void shouldRemoveDatabaseDefaults() {
|
||||
// given / when
|
||||
PlayerAuth auth = PlayerAuth.builder()
|
||||
.name("Bobby")
|
||||
.lastLogin(0L)
|
||||
.email("your@email.com")
|
||||
.build();
|
||||
|
||||
// then
|
||||
assertThat(auth.getNickname(), equalTo("bobby"));
|
||||
assertThat(auth.getLastLogin(), nullValue());
|
||||
assertThat(auth.getEmail(), nullValue());
|
||||
}
|
||||
|
||||
@Test
|
||||
public void shouldThrowForMissingName() {
|
||||
try {
|
||||
// given / when
|
||||
PlayerAuth.builder()
|
||||
.email("test@example.org")
|
||||
.groupId(3)
|
||||
.build();
|
||||
|
||||
// then
|
||||
fail("Expected exception to be thrown");
|
||||
} catch (NullPointerException e) {
|
||||
// all good
|
||||
}
|
||||
}
|
||||
|
||||
@Test
|
||||
public void shouldCreatePlayerAuthWithNullValues() {
|
||||
// given / when
|
||||
PlayerAuth auth = PlayerAuth.builder()
|
||||
.name("Charlie")
|
||||
.email(null)
|
||||
.lastLogin(null)
|
||||
.groupId(19)
|
||||
.locPitch(123.004f)
|
||||
.build();
|
||||
|
||||
// then
|
||||
assertThat(auth.getEmail(), nullValue());
|
||||
assertThat(auth.getLastLogin(), nullValue());
|
||||
assertThat(auth.getGroupId(), equalTo(19));
|
||||
assertThat(auth.getPitch(), equalTo(123.004f));
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user