Long expectedDeleteBoxCount = messageApi.findUserMessage(senderId, MessageState.delete_box, null).getTotalElements() + 1;
Date lastDate = new Date();
Thread.sleep(1500L); //暂停1500毫秒 保证时间差(因为mysql只支持到秒。。)
Message message = new Message();
message.setSenderId(senderId);
message.setReceiverId(receiverId);
message.setTitle("ded");
MessageContent content = new MessageContent();
content.setContent("abcde");
message.setContent(content);
messageApi.send(message);
clear();
message = messageService.findOne(message.getId());
Assert.assertTrue(message.getSendDate().getTime() > lastDate.getTime());
Assert.assertTrue(message.getSendDate().getTime() == message.getSenderStateChangeDate().getTime());
Assert.assertTrue(message.getSendDate().getTime() == message.getReceiverStateChangeDate().getTime());
lastDate = message.getSendDate();
Thread.sleep(1500L);
messageApi.recycle(senderId, message.getId());
clear();
message = messageService.findOne(message.getId());
Assert.assertTrue(message.getSendDate().getTime() == message.getReceiverStateChangeDate().getTime());
Assert.assertFalse(message.getSendDate().getTime() == message.getSenderStateChangeDate().getTime());
Assert.assertTrue(message.getSenderStateChangeDate().getTime() > lastDate.getTime());
lastDate = message.getSenderStateChangeDate();
Long actualTrashBoxCount = messageApi.findUserMessage(senderId, MessageState.trash_box, null).getTotalElements();
Assert.assertEquals(expectedTrashBoxCount, actualTrashBoxCount);
Thread.sleep(1500L);
messageApi.clearTrashBox(senderId);
clear();
message = messageService.findOne(message.getId());
Assert.assertTrue(message.getSendDate().getTime() == message.getReceiverStateChangeDate().getTime());
Assert.assertFalse(message.getSendDate().getTime() == message.getSenderStateChangeDate().getTime());
Assert.assertTrue(message.getSenderStateChangeDate().getTime() > lastDate.getTime());
actualTrashBoxCount = messageApi.findUserMessage(senderId, MessageState.trash_box, null).getTotalElements();
Assert.assertEquals(Long.valueOf(0L), actualTrashBoxCount);
Long actuaDeleteBoxCount = messageApi.findUserMessage(senderId, MessageState.delete_box, null).getTotalElements();