use of fr.xephi.authme.datasource.DataSource in project AuthMeReloaded by AuthMe.
the class DebugSectionUtils method unwrapSourceFromCacheDataSource.
/**
* Unwraps the "cache data source" and returns the underlying source. Returns the
* same as the input argument otherwise.
*
* @param dataSource the data source to unwrap if applicable
* @return the non-cache data source
*/
static DataSource unwrapSourceFromCacheDataSource(DataSource dataSource) {
if (dataSource instanceof CacheDataSource) {
try {
Field source = CacheDataSource.class.getDeclaredField("source");
source.setAccessible(true);
return (DataSource) source.get(dataSource);
} catch (NoSuchFieldException | IllegalAccessException e) {
logger.logException("Could not get source of CacheDataSource:", e);
return null;
}
}
return dataSource;
}
use of fr.xephi.authme.datasource.DataSource in project AuthMeReloaded by AuthMe.
the class DebugSectionUtilsTest method shouldReturnSameDataSourceInstance.
@Test
public void shouldReturnSameDataSourceInstance() {
// given
DataSource dataSource = mock(DataSource.class);
// when
DataSource result = DebugSectionUtils.unwrapSourceFromCacheDataSource(dataSource);
// then
assertThat(result, equalTo(dataSource));
}
use of fr.xephi.authme.datasource.DataSource in project AuthMeReloaded by AuthMe.
the class AbstractDataSourceConverterTest method shouldThrowForDestinationTypeMismatch.
@Test
public void shouldThrowForDestinationTypeMismatch() {
// given
DataSource destination = mock(DataSource.class);
given(destination.getType()).willReturn(DataSourceType.MYSQL);
DataSourceType destinationType = DataSourceType.SQLITE;
DataSource source = mock(DataSource.class);
Converter converter = new DataSourceConverterTestImpl<>(source, destination, destinationType);
CommandSender sender = mock(CommandSender.class);
// when
converter.execute(sender);
// then
verify(sender).sendMessage(argThat(containsString("Please configure your connection to SQLITE")));
verify(destination, only()).getType();
verifyNoInteractions(source);
}
use of fr.xephi.authme.datasource.DataSource in project AuthMeReloaded by AuthMe.
the class AbstractDataSourceConverterTest method shouldHandleSourceThrowingException.
@Test
public void shouldHandleSourceThrowingException() {
// given
DataSource source = mock(DataSource.class);
DataSource destination = mock(DataSource.class);
DataSourceType destinationType = DataSourceType.SQLITE;
given(destination.getType()).willReturn(destinationType);
DataSourceConverterTestImpl<DataSource> converter = Mockito.spy(new DataSourceConverterTestImpl<>(source, destination, destinationType));
doThrow(IllegalStateException.class).when(converter).getSource();
CommandSender sender = mock(CommandSender.class);
// when
converter.execute(sender);
// then
verify(sender).sendMessage("The data source to convert from could not be initialized");
verify(destination, only()).getType();
verifyNoInteractions(source);
}
use of fr.xephi.authme.datasource.DataSource in project AuthMeReloaded by AuthMe.
the class AbstractDataSourceConverterTest method shouldConvertAndSkipExistingPlayers.
@Test
public void shouldConvertAndSkipExistingPlayers() {
// given
DataSource source = mock(DataSource.class);
DataSource destination = mock(DataSource.class);
DataSourceType destinationType = DataSourceType.MYSQL;
given(destination.getType()).willReturn(destinationType);
List<PlayerAuth> auths = Arrays.asList(mockAuthWithName("Steven"), mockAuthWithName("bobby"), mockAuthWithName("Jack"));
given(source.getAllAuths()).willReturn(auths);
given(destination.isAuthAvailable(auths.get(0).getNickname())).willReturn(true);
Converter converter = new DataSourceConverterTestImpl<>(source, destination, destinationType);
CommandSender sender = mock(CommandSender.class);
// when
converter.execute(sender);
// then
verify(destination).getType();
verify(destination, times(3)).isAuthAvailable(anyString());
verify(destination, times(2)).saveAuth(any(PlayerAuth.class));
verify(destination, times(2)).updateSession(any(PlayerAuth.class));
verify(destination, times(2)).updateQuitLoc(any(PlayerAuth.class));
verifyNoMoreInteractions(destination);
verify(sender).sendMessage(argThat(containsString(auths.get(0).getNickname())));
verify(sender).sendMessage(argThat(containsString("successfully converted")));
}
Aggregations