Temporarily disable GCM unregistered feedback
This commit is contained in:
parent
ff3056332e
commit
45dc7459b8
|
@ -111,19 +111,19 @@ public class GCMSender implements Managed {
|
||||||
GcmMessage message = (GcmMessage)result.getContext();
|
GcmMessage message = (GcmMessage)result.getContext();
|
||||||
logger.warn("Got GCM unregistered notice! " + message.getGcmId());
|
logger.warn("Got GCM unregistered notice! " + message.getGcmId());
|
||||||
|
|
||||||
Optional<Account> account = getAccountForEvent(message);
|
// Optional<Account> account = getAccountForEvent(message);
|
||||||
|
//
|
||||||
if (account.isPresent()) {
|
// if (account.isPresent()) {
|
||||||
Device device = account.get().getDevice(message.getDeviceId()).get();
|
// Device device = account.get().getDevice(message.getDeviceId()).get();
|
||||||
device.setGcmId(null);
|
// device.setGcmId(null);
|
||||||
device.setFetchesMessages(false);
|
// device.setFetchesMessages(false);
|
||||||
|
//
|
||||||
accountsManager.update(account.get());
|
// accountsManager.update(account.get());
|
||||||
|
//
|
||||||
if (!account.get().isActive()) {
|
// if (!account.get().isActive()) {
|
||||||
directoryQueue.deleteRegisteredUser(account.get().getNumber());
|
// directoryQueue.deleteRegisteredUser(account.get().getNumber());
|
||||||
}
|
// }
|
||||||
}
|
// }
|
||||||
|
|
||||||
unregistered.mark();
|
unregistered.mark();
|
||||||
}
|
}
|
||||||
|
|
|
@ -48,45 +48,45 @@ public class GCMSenderTest {
|
||||||
verify(sender, times(1)).send(any(Message.class), eq(message));
|
verify(sender, times(1)).send(any(Message.class), eq(message));
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
// @Test
|
||||||
public void testSendError() {
|
// public void testSendError() {
|
||||||
String destinationNumber = "+12223334444";
|
// String destinationNumber = "+12223334444";
|
||||||
String gcmId = "foo";
|
// String gcmId = "foo";
|
||||||
|
//
|
||||||
AccountsManager accountsManager = mock(AccountsManager.class);
|
// AccountsManager accountsManager = mock(AccountsManager.class);
|
||||||
Sender sender = mock(Sender.class );
|
// Sender sender = mock(Sender.class );
|
||||||
Result invalidResult = mock(Result.class );
|
// Result invalidResult = mock(Result.class );
|
||||||
DirectoryQueue directoryQueue = mock(DirectoryQueue.class );
|
// DirectoryQueue directoryQueue = mock(DirectoryQueue.class );
|
||||||
SynchronousExecutorService executorService = new SynchronousExecutorService();
|
// SynchronousExecutorService executorService = new SynchronousExecutorService();
|
||||||
|
//
|
||||||
Account destinationAccount = mock(Account.class);
|
// Account destinationAccount = mock(Account.class);
|
||||||
Device destinationDevice = mock(Device.class );
|
// Device destinationDevice = mock(Device.class );
|
||||||
|
//
|
||||||
when(destinationAccount.getDevice(1)).thenReturn(Optional.of(destinationDevice));
|
// when(destinationAccount.getDevice(1)).thenReturn(Optional.of(destinationDevice));
|
||||||
when(accountsManager.get(destinationNumber)).thenReturn(Optional.of(destinationAccount));
|
// when(accountsManager.get(destinationNumber)).thenReturn(Optional.of(destinationAccount));
|
||||||
when(destinationDevice.getGcmId()).thenReturn(gcmId);
|
// when(destinationDevice.getGcmId()).thenReturn(gcmId);
|
||||||
|
//
|
||||||
when(invalidResult.isInvalidRegistrationId()).thenReturn(true);
|
// when(invalidResult.isInvalidRegistrationId()).thenReturn(true);
|
||||||
when(invalidResult.isUnregistered()).thenReturn(false);
|
// when(invalidResult.isUnregistered()).thenReturn(false);
|
||||||
when(invalidResult.hasCanonicalRegistrationId()).thenReturn(false);
|
// when(invalidResult.hasCanonicalRegistrationId()).thenReturn(false);
|
||||||
when(invalidResult.isSuccess()).thenReturn(true);
|
// when(invalidResult.isSuccess()).thenReturn(true);
|
||||||
|
//
|
||||||
GcmMessage message = new GcmMessage(gcmId, destinationNumber, 1, false);
|
// GcmMessage message = new GcmMessage(gcmId, destinationNumber, 1, false);
|
||||||
GCMSender gcmSender = new GCMSender(accountsManager, sender, directoryQueue, executorService);
|
// GCMSender gcmSender = new GCMSender(accountsManager, sender, directoryQueue, executorService);
|
||||||
|
//
|
||||||
SettableFuture<Result> invalidFuture = SettableFuture.create();
|
// SettableFuture<Result> invalidFuture = SettableFuture.create();
|
||||||
invalidFuture.set(invalidResult);
|
// invalidFuture.set(invalidResult);
|
||||||
|
//
|
||||||
when(sender.send(any(Message.class), Matchers.anyObject())).thenReturn(invalidFuture);
|
// when(sender.send(any(Message.class), Matchers.anyObject())).thenReturn(invalidFuture);
|
||||||
when(invalidResult.getContext()).thenReturn(message);
|
// when(invalidResult.getContext()).thenReturn(message);
|
||||||
|
//
|
||||||
gcmSender.sendMessage(message);
|
// gcmSender.sendMessage(message);
|
||||||
|
//
|
||||||
verify(sender, times(1)).send(any(Message.class), eq(message));
|
// verify(sender, times(1)).send(any(Message.class), eq(message));
|
||||||
verify(accountsManager, times(1)).get(eq(destinationNumber));
|
// verify(accountsManager, times(1)).get(eq(destinationNumber));
|
||||||
verify(accountsManager, times(1)).update(eq(destinationAccount));
|
// verify(accountsManager, times(1)).update(eq(destinationAccount));
|
||||||
verify(destinationDevice, times(1)).setGcmId(eq((String)null));
|
// verify(destinationDevice, times(1)).setGcmId(eq((String)null));
|
||||||
}
|
// }
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void testCanonicalId() {
|
public void testCanonicalId() {
|
||||||
|
|
Loading…
Reference in New Issue