DATAGEODE-109 - Remove all deprecated methods, properties, etc.
This commit is contained in:
@@ -48,15 +48,17 @@ public class LocalRegionFactoryBeanTest extends AbstractRegionFactoryBeanTests {
|
||||
|
||||
@SuppressWarnings("rawtypes")
|
||||
private RegionFactoryBeanConfig defaultConfig() {
|
||||
|
||||
return new RegionFactoryBeanConfig(new LocalRegionFactoryBean(), "default") {
|
||||
|
||||
@Override
|
||||
public void configureRegionFactoryBean() {
|
||||
}
|
||||
public void configureRegionFactoryBean() { }
|
||||
|
||||
@Override
|
||||
public void verify() {
|
||||
|
||||
Region region = regionFactoryBean.getRegion();
|
||||
|
||||
assertNotNull(region);
|
||||
assertEquals(DataPolicy.DEFAULT, region.getAttributes().getDataPolicy());
|
||||
}
|
||||
@@ -65,11 +67,12 @@ public class LocalRegionFactoryBeanTest extends AbstractRegionFactoryBeanTests {
|
||||
|
||||
@SuppressWarnings({ "deprecation", "rawtypes" })
|
||||
private RegionFactoryBeanConfig invalidConfig() {
|
||||
|
||||
return new RegionFactoryBeanConfig(new LocalRegionFactoryBean(), "local-replicate") {
|
||||
|
||||
@Override
|
||||
public void configureRegionFactoryBean() {
|
||||
regionFactoryBean.setDataPolicy("replicate");
|
||||
regionFactoryBean.setDataPolicy(DataPolicy.REPLICATE);
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -91,29 +94,39 @@ public class LocalRegionFactoryBeanTest extends AbstractRegionFactoryBeanTests {
|
||||
|
||||
@Test
|
||||
public void testResolveDataPolicyWhenPersistentUnspecifiedAndDataPolicyUnspecified() {
|
||||
|
||||
RegionFactory mockRegionFactory = createMockRegionFactory();
|
||||
|
||||
factoryBean.resolveDataPolicy(mockRegionFactory, null, (String) null);
|
||||
|
||||
verify(mockRegionFactory).setDataPolicy(eq(DataPolicy.NORMAL));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testResolveDataPolicyWhenNotPersistentAndDataPolicyUnspecified() {
|
||||
|
||||
RegionFactory mockRegionFactory = createMockRegionFactory();
|
||||
|
||||
factoryBean.setPersistent(false);
|
||||
factoryBean.resolveDataPolicy(mockRegionFactory, false, (String) null);
|
||||
|
||||
verify(mockRegionFactory).setDataPolicy(eq(DataPolicy.NORMAL));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testResolveDataPolicyWhenPersistentAndDataPolicyUnspecified() {
|
||||
|
||||
RegionFactory mockRegionFactory = createMockRegionFactory();
|
||||
|
||||
factoryBean.setPersistent(true);
|
||||
factoryBean.resolveDataPolicy(mockRegionFactory, true, (String) null);
|
||||
|
||||
verify(mockRegionFactory).setDataPolicy(eq(DataPolicy.PERSISTENT_REPLICATE));
|
||||
}
|
||||
|
||||
@Test(expected = IllegalArgumentException.class)
|
||||
public void testResolveDataPolicyWithBlankDataPolicy() {
|
||||
|
||||
RegionFactory mockRegionFactory = createMockRegionFactory();
|
||||
|
||||
try {
|
||||
@@ -133,6 +146,7 @@ public class LocalRegionFactoryBeanTest extends AbstractRegionFactoryBeanTests {
|
||||
|
||||
@Test(expected = IllegalArgumentException.class)
|
||||
public void testResolveDataPolicyWithEmptyDataPolicy() {
|
||||
|
||||
RegionFactory mockRegionFactory = createMockRegionFactory();
|
||||
|
||||
try {
|
||||
@@ -152,6 +166,7 @@ public class LocalRegionFactoryBeanTest extends AbstractRegionFactoryBeanTests {
|
||||
|
||||
@Test(expected = IllegalArgumentException.class)
|
||||
public void testResolveDataPolicyWithInvalidDataPolicyName() {
|
||||
|
||||
RegionFactory mockRegionFactory = createMockRegionFactory();
|
||||
|
||||
try {
|
||||
@@ -171,6 +186,7 @@ public class LocalRegionFactoryBeanTest extends AbstractRegionFactoryBeanTests {
|
||||
|
||||
@Test(expected = IllegalArgumentException.class)
|
||||
public void testResolveDataPolicyWithInvalidDataPolicyType() {
|
||||
|
||||
RegionFactory mockRegionFactory = createMockRegionFactory();
|
||||
|
||||
try {
|
||||
@@ -190,52 +206,71 @@ public class LocalRegionFactoryBeanTest extends AbstractRegionFactoryBeanTests {
|
||||
|
||||
@Test
|
||||
public void testResolveDataPolicyWhenPersistentUnspecifiedAndNormalDataPolicy() {
|
||||
|
||||
RegionFactory mockRegionFactory = createMockRegionFactory();
|
||||
|
||||
factoryBean.resolveDataPolicy(mockRegionFactory, null, "Normal");
|
||||
|
||||
verify(mockRegionFactory).setDataPolicy(eq(DataPolicy.NORMAL));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testResolveDataPolicyWhenNotPersistentAndNormalDataPolicy() {
|
||||
|
||||
RegionFactory mockRegionFactory = createMockRegionFactory();
|
||||
|
||||
factoryBean.setPersistent(false);
|
||||
factoryBean.resolveDataPolicy(mockRegionFactory, false, "NORMAL");
|
||||
|
||||
verify(mockRegionFactory).setDataPolicy(eq(DataPolicy.NORMAL));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testResolveDataPolicyWhenPersistentAndNormalDataPolicy() {
|
||||
|
||||
RegionFactory mockRegionFactory = createMockRegionFactory();
|
||||
|
||||
factoryBean.setPersistent(true);
|
||||
factoryBean.resolveDataPolicy(mockRegionFactory, true, "NORMAL");
|
||||
|
||||
verify(mockRegionFactory).setDataPolicy(eq(DataPolicy.PERSISTENT_REPLICATE));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testResolveDataPolicyWhenPersistentUnspecifiedAndPreloadedDataPolicy() {
|
||||
|
||||
RegionFactory mockRegionFactory = createMockRegionFactory();
|
||||
|
||||
factoryBean.resolveDataPolicy(mockRegionFactory, null, "preloaded");
|
||||
|
||||
verify(mockRegionFactory).setDataPolicy(eq(DataPolicy.PRELOADED));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testResolveDataPolicyWhenNotPersistentAndPreloadedDataPolicy() {
|
||||
|
||||
RegionFactory mockRegionFactory = createMockRegionFactory();
|
||||
|
||||
factoryBean.setPersistent(false);
|
||||
factoryBean.resolveDataPolicy(mockRegionFactory, false, "PreLoaded");
|
||||
|
||||
verify(mockRegionFactory).setDataPolicy(eq(DataPolicy.PRELOADED));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testResolveDataPolicyWhenPersistentAndPreloadedDataPolicy() {
|
||||
|
||||
RegionFactory mockRegionFactory = createMockRegionFactory();
|
||||
|
||||
factoryBean.setPersistent(true);
|
||||
factoryBean.resolveDataPolicy(mockRegionFactory, true, "PRELOADED");
|
||||
|
||||
verify(mockRegionFactory).setDataPolicy(eq(DataPolicy.PERSISTENT_REPLICATE));
|
||||
}
|
||||
|
||||
@Test(expected = IllegalArgumentException.class)
|
||||
public void testResolveDataPolicyWhenShortcutIsNullAndPersistentReplicateDataPolicy() {
|
||||
|
||||
RegionFactory mockRegionFactory = createMockRegionFactory();
|
||||
|
||||
try {
|
||||
@@ -257,6 +292,7 @@ public class LocalRegionFactoryBeanTest extends AbstractRegionFactoryBeanTests {
|
||||
|
||||
@Test(expected = IllegalArgumentException.class)
|
||||
public void testResolveDataPolicyWhenShortcutNotPersistentAndPersistentReplicateDataPolicy() {
|
||||
|
||||
RegionFactory mockRegionFactory = createMockRegionFactory();
|
||||
|
||||
try {
|
||||
@@ -278,9 +314,12 @@ public class LocalRegionFactoryBeanTest extends AbstractRegionFactoryBeanTests {
|
||||
|
||||
@Test
|
||||
public void testResolveDataPolicyWhenPersistentPersistentReplicateDataPolicy() {
|
||||
|
||||
RegionFactory mockRegionFactory = createMockRegionFactory();
|
||||
|
||||
factoryBean.setShortcut(RegionShortcut.LOCAL_PERSISTENT_OVERFLOW);
|
||||
factoryBean.resolveDataPolicy(mockRegionFactory, false, DataPolicy.PERSISTENT_REPLICATE);
|
||||
|
||||
verify(mockRegionFactory).setDataPolicy(DataPolicy.PERSISTENT_REPLICATE);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -115,10 +115,12 @@ public class PeerRegionFactoryBeanTest extends AbstractRegionFactoryBeanTests {
|
||||
|
||||
@SuppressWarnings({ "deprecation", "rawtypes" })
|
||||
private RegionFactoryBeanConfig invalidPersistentConfig() {
|
||||
|
||||
return new RegionFactoryBeanConfig(new TestRegionFactoryBean(), "invalid-persistence") {
|
||||
|
||||
@Override
|
||||
public void configureRegionFactoryBean() {
|
||||
regionFactoryBean.setDataPolicy("persistent_replicate");
|
||||
regionFactoryBean.setDataPolicy(DataPolicy.PERSISTENT_REPLICATE);
|
||||
regionFactoryBean.setPersistent(false);
|
||||
}
|
||||
|
||||
@@ -1087,6 +1089,6 @@ public class PeerRegionFactoryBeanTest extends AbstractRegionFactoryBeanTests {
|
||||
}
|
||||
}
|
||||
|
||||
protected static class TestRegionFactoryBean<K, V> extends PeerRegionFactoryBean<K, V> {
|
||||
}
|
||||
protected static class TestRegionFactoryBean<K, V> extends PeerRegionFactoryBean<K, V> { }
|
||||
|
||||
}
|
||||
|
||||
@@ -471,34 +471,6 @@ public class ClientRegionFactoryBeanTest {
|
||||
verify(mockRegionAttributes, times(1)).getPoolName();
|
||||
}
|
||||
|
||||
@Test
|
||||
@SuppressWarnings("deprecation")
|
||||
public void setDataPolicyName() throws Exception {
|
||||
|
||||
factoryBean.setDataPolicyName("NORMAL");
|
||||
|
||||
assertEquals(DataPolicy.NORMAL, TestUtils.readField("dataPolicy", factoryBean));
|
||||
}
|
||||
|
||||
@Test(expected = IllegalArgumentException.class)
|
||||
@SuppressWarnings("deprecation")
|
||||
public void setDataPolicyNameWithInvalidName() throws Exception {
|
||||
|
||||
try {
|
||||
factoryBean.setDataPolicyName("INVALID");
|
||||
}
|
||||
catch (IllegalArgumentException expected) {
|
||||
|
||||
assertThat(expected).hasMessage("Data Policy [INVALID] is not valid");
|
||||
assertThat(expected).hasNoCause();
|
||||
|
||||
throw expected;
|
||||
}
|
||||
finally {
|
||||
assertNull(TestUtils.readField("dataPolicy", factoryBean));
|
||||
}
|
||||
}
|
||||
|
||||
@Test
|
||||
public void isPersistentIsCorrect() {
|
||||
|
||||
|
||||
@@ -129,22 +129,6 @@ public class InterestUnitTests {
|
||||
new Interest<>(null);
|
||||
}
|
||||
|
||||
@Test
|
||||
@SuppressWarnings("deprecation")
|
||||
public void constructInterestWithStringPolicy() {
|
||||
Interest<String> interest = new Interest<>("mockKey", "nOnE");
|
||||
|
||||
assertThat(interest.getKey()).isEqualTo("mockKey");
|
||||
assertThat(interest.getPolicy()).isEqualTo(InterestResultPolicy.NONE);
|
||||
assertThat(interest.getType()).isEqualTo(KEY);
|
||||
}
|
||||
|
||||
@Test(expected = IllegalArgumentException.class)
|
||||
@SuppressWarnings("deprecation")
|
||||
public void constructInterestWithInvalidStringPolicy() {
|
||||
new Interest<>("testKey", "INVALID");
|
||||
}
|
||||
|
||||
@Test
|
||||
public void isAlphanumericWhitespace() {
|
||||
Interest<?> interest = newInterest("key");
|
||||
|
||||
@@ -321,26 +321,6 @@ public class MappingPdxSerializerUnitTests {
|
||||
assertThat(this.pdxSerializer.getCustomPdxSerializer(addressProperty)).isEqualTo(mockTypedSerializer);
|
||||
}
|
||||
|
||||
@Test
|
||||
// TODO remove!
|
||||
@SuppressWarnings("deprecation")
|
||||
public void getCustomSerializerForMappedTypeReturnsPdxSerializer() {
|
||||
|
||||
PdxSerializer mockPdxSerializer = mock(PdxSerializer.class);
|
||||
|
||||
this.pdxSerializer.setCustomPdxSerializers(Collections.singletonMap(Person.class, mockPdxSerializer));
|
||||
|
||||
assertThat(this.pdxSerializer.getCustomSerializer(Person.class)).isEqualTo(mockPdxSerializer);
|
||||
}
|
||||
|
||||
@Test
|
||||
// TODO remove!
|
||||
@SuppressWarnings("deprecation")
|
||||
public void getCustomSerializerForUnmappedTypeReturnsNull() {
|
||||
assertThat(this.pdxSerializer.getCustomPdxSerializers()).isEmpty();
|
||||
assertThat(this.pdxSerializer.getCustomSerializer(Address.class)).isNull();
|
||||
}
|
||||
|
||||
@Test
|
||||
public void toFullyQualifiedPropertyName() {
|
||||
|
||||
|
||||
@@ -16,10 +16,8 @@
|
||||
|
||||
package org.springframework.data.gemfire.wan;
|
||||
|
||||
import static org.hamcrest.Matchers.is;
|
||||
import static org.junit.Assert.assertEquals;
|
||||
import static org.junit.Assert.assertNotNull;
|
||||
import static org.junit.Assert.assertThat;
|
||||
import static org.mockito.Matchers.eq;
|
||||
import static org.mockito.Mockito.mock;
|
||||
import static org.mockito.Mockito.never;
|
||||
@@ -47,13 +45,13 @@ import org.springframework.data.gemfire.TestUtils;
|
||||
*/
|
||||
public class GatewaySenderFactoryBeanTest {
|
||||
|
||||
protected Cache createMockCacheWithGatewayInfrastructure(final GatewaySenderFactory gatewaySenderFactory) {
|
||||
private Cache mockCacheWithGatewayInfrastructure(final GatewaySenderFactory gatewaySenderFactory) {
|
||||
Cache mockCache = mock(Cache.class);
|
||||
when(mockCache.createGatewaySenderFactory()).thenReturn(gatewaySenderFactory);
|
||||
return mockCache;
|
||||
}
|
||||
|
||||
protected GatewaySenderFactory createMockGatewaySenderFactory(final String gatewaySenderName,
|
||||
private GatewaySenderFactory mockGatewaySenderFactory(final String gatewaySenderName,
|
||||
final int remoteDistributedSystemId) {
|
||||
GatewaySenderFactory mockGatewaySenderFactory = mock(GatewaySenderFactory.class);
|
||||
GatewaySender mockGatewaySender = mock(GatewaySender.class);
|
||||
@@ -66,8 +64,9 @@ public class GatewaySenderFactoryBeanTest {
|
||||
return mockGatewaySenderFactory;
|
||||
}
|
||||
|
||||
protected void verifyExpectations(final GatewaySenderFactoryBean factoryBean,
|
||||
final GatewaySenderFactory mockGatewaySenderFactory) throws Exception {
|
||||
protected void verifyExpectations(GatewaySenderFactoryBean factoryBean,
|
||||
GatewaySenderFactory mockGatewaySenderFactory) throws Exception {
|
||||
|
||||
Boolean parallel = TestUtils.readField("parallel", factoryBean);
|
||||
|
||||
verify(mockGatewaySenderFactory).setParallel(eq(Boolean.TRUE.equals(parallel)));
|
||||
@@ -108,10 +107,12 @@ public class GatewaySenderFactoryBeanTest {
|
||||
|
||||
@Test
|
||||
public void concurrentParallelGatewaySenderCreation() throws Exception {
|
||||
GatewaySenderFactory mockGatewaySenderFactory = createMockGatewaySenderFactory("g0", 69);
|
||||
|
||||
GatewaySenderFactory mockGatewaySenderFactory =
|
||||
mockGatewaySenderFactory("g0", 69);
|
||||
|
||||
GatewaySenderFactoryBean factoryBean = new GatewaySenderFactoryBean(
|
||||
createMockCacheWithGatewayInfrastructure(mockGatewaySenderFactory));
|
||||
mockCacheWithGatewayInfrastructure(mockGatewaySenderFactory));
|
||||
|
||||
factoryBean.setName("g0");
|
||||
factoryBean.setRemoteDistributedSystemId(69);
|
||||
@@ -130,10 +131,12 @@ public class GatewaySenderFactoryBeanTest {
|
||||
|
||||
@Test
|
||||
public void concurrentSerialGatewaySenderCreation() throws Exception {
|
||||
GatewaySenderFactory mockGatewaySenderFactory = createMockGatewaySenderFactory("g4", 21);
|
||||
|
||||
GatewaySenderFactory mockGatewaySenderFactory =
|
||||
mockGatewaySenderFactory("g4", 21);
|
||||
|
||||
GatewaySenderFactoryBean factoryBean = new GatewaySenderFactoryBean(
|
||||
createMockCacheWithGatewayInfrastructure(mockGatewaySenderFactory));
|
||||
mockCacheWithGatewayInfrastructure(mockGatewaySenderFactory));
|
||||
|
||||
factoryBean.setName("g4");
|
||||
factoryBean.setRemoteDistributedSystemId(21);
|
||||
@@ -152,10 +155,12 @@ public class GatewaySenderFactoryBeanTest {
|
||||
|
||||
@Test
|
||||
public void parallelGatewaySenderCreation() throws Exception {
|
||||
GatewaySenderFactory mockGatewaySenderFactory = createMockGatewaySenderFactory("g1", 69);
|
||||
|
||||
GatewaySenderFactory mockGatewaySenderFactory =
|
||||
mockGatewaySenderFactory("g1", 69);
|
||||
|
||||
GatewaySenderFactoryBean factoryBean = new GatewaySenderFactoryBean(
|
||||
createMockCacheWithGatewayInfrastructure(mockGatewaySenderFactory));
|
||||
mockCacheWithGatewayInfrastructure(mockGatewaySenderFactory));
|
||||
|
||||
factoryBean.setName("g1");
|
||||
factoryBean.setRemoteDistributedSystemId(69);
|
||||
@@ -173,10 +178,12 @@ public class GatewaySenderFactoryBeanTest {
|
||||
|
||||
@Test(expected = IllegalArgumentException.class)
|
||||
public void parallelGatewaySenderWithOrderPolicyCreation() {
|
||||
GatewaySenderFactory mockGatewaySenderFactory = createMockGatewaySenderFactory("g2", 69);
|
||||
|
||||
GatewaySenderFactory mockGatewaySenderFactory =
|
||||
mockGatewaySenderFactory("g2", 69);
|
||||
|
||||
GatewaySenderFactoryBean factoryBean = new GatewaySenderFactoryBean(
|
||||
createMockCacheWithGatewayInfrastructure(mockGatewaySenderFactory));
|
||||
mockCacheWithGatewayInfrastructure(mockGatewaySenderFactory));
|
||||
|
||||
factoryBean.setName("g2");
|
||||
factoryBean.setRemoteDistributedSystemId(69);
|
||||
@@ -194,10 +201,12 @@ public class GatewaySenderFactoryBeanTest {
|
||||
|
||||
@Test
|
||||
public void gatewaySenderCreationWithDiskSynchronousAndNoPersistence() throws Exception {
|
||||
GatewaySenderFactory mockGatewaySenderFactory = createMockGatewaySenderFactory("g7", 51);
|
||||
|
||||
GatewaySenderFactory mockGatewaySenderFactory =
|
||||
mockGatewaySenderFactory("g7", 51);
|
||||
|
||||
GatewaySenderFactoryBean factoryBean = new GatewaySenderFactoryBean(
|
||||
createMockCacheWithGatewayInfrastructure(mockGatewaySenderFactory));
|
||||
mockCacheWithGatewayInfrastructure(mockGatewaySenderFactory));
|
||||
|
||||
factoryBean.setName("g7");
|
||||
factoryBean.setRemoteDistributedSystemId(51);
|
||||
@@ -215,10 +224,12 @@ public class GatewaySenderFactoryBeanTest {
|
||||
|
||||
@Test
|
||||
public void gatewaySenderCreationWithOverflowDiskStoreAndNoPersistence() throws Exception {
|
||||
GatewaySenderFactory mockGatewaySenderFactory = createMockGatewaySenderFactory("g6", 51);
|
||||
|
||||
GatewaySenderFactory mockGatewaySenderFactory =
|
||||
mockGatewaySenderFactory("g6", 51);
|
||||
|
||||
GatewaySenderFactoryBean factoryBean = new GatewaySenderFactoryBean(
|
||||
createMockCacheWithGatewayInfrastructure(mockGatewaySenderFactory));
|
||||
mockCacheWithGatewayInfrastructure(mockGatewaySenderFactory));
|
||||
|
||||
factoryBean.setName("g6");
|
||||
factoryBean.setRemoteDistributedSystemId(51);
|
||||
@@ -237,10 +248,12 @@ public class GatewaySenderFactoryBeanTest {
|
||||
|
||||
@Test
|
||||
public void gatewaySenderCreationWithOrderPolicyAndDispatcherThreads() throws Exception {
|
||||
GatewaySenderFactory mockGatewaySenderFactory = createMockGatewaySenderFactory("g5", 42);
|
||||
|
||||
GatewaySenderFactory mockGatewaySenderFactory =
|
||||
mockGatewaySenderFactory("g5", 42);
|
||||
|
||||
GatewaySenderFactoryBean factoryBean = new GatewaySenderFactoryBean(
|
||||
createMockCacheWithGatewayInfrastructure(mockGatewaySenderFactory));
|
||||
mockCacheWithGatewayInfrastructure(mockGatewaySenderFactory));
|
||||
|
||||
factoryBean.setName("g5");
|
||||
factoryBean.setRemoteDistributedSystemId(42);
|
||||
@@ -256,30 +269,4 @@ public class GatewaySenderFactoryBeanTest {
|
||||
assertEquals("g5", gatewaySender.getId());
|
||||
assertEquals(42, gatewaySender.getRemoteDSId());
|
||||
}
|
||||
|
||||
@Test
|
||||
@SuppressWarnings("deprecation")
|
||||
public void setOrderPolicyAsValidString() throws Exception {
|
||||
GatewaySenderFactoryBean factoryBean = new GatewaySenderFactoryBean(mock(Cache.class,
|
||||
"setOrderPolicyAsAValidString.MockCache"));
|
||||
|
||||
factoryBean.setOrderPolicy(GatewaySender.OrderPolicy.THREAD.name().toLowerCase());
|
||||
|
||||
assertThat(TestUtils.<GatewaySender.OrderPolicy>readField("orderPolicy", factoryBean),
|
||||
is(GatewaySender.OrderPolicy.THREAD));
|
||||
}
|
||||
|
||||
@Test(expected = IllegalArgumentException.class)
|
||||
@SuppressWarnings("deprecation")
|
||||
public void setOrderPolicyAsInvalidString() {
|
||||
try {
|
||||
new GatewaySenderFactoryBean(mock(Cache.class, "setOrderPolicyAsInvalidString.MockCache"))
|
||||
.setOrderPolicy("invalid");
|
||||
}
|
||||
catch (IllegalArgumentException expected) {
|
||||
assertEquals(String.format("[invalid] is not a valid %s", GatewaySender.OrderPolicy.class.getSimpleName()),
|
||||
expected.getMessage());
|
||||
throw expected;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user