GnunetChatMockTest.kt (5171B)
1 package org.gnunet.gnunetmessenger.service.mock 2 3 import org.gnunet.gnunetmessenger.model.ChatHandle 4 import org.gnunet.gnunetmessenger.model.ChatContext 5 import org.gnunet.gnunetmessenger.model.ChatMessage 6 import org.gnunet.gnunetmessenger.model.MessageKind 7 import org.gnunet.gnunetmessenger.model.ChatUri 8 import org.gnunet.gnunetmessenger.model.GnunetReturnValue 9 import org.gnunet.gnunetmessenger.model.ChatContact 10 import org.gnunet.gnunetmessenger.model.ChatGroup 11 import org.junit.Assert.assertEquals 12 import org.junit.Test 13 14 class GnunetChatMockTest { 15 16 @Test 17 fun iterateAccountsReturnsTheHardcodedAccountNames() { 18 val mock = GnunetChatMock() 19 20 val fakeHandle = ChatHandle(1) 21 22 val resultingNames = mutableListOf<String>() 23 24 mock.iterateAccounts(fakeHandle) { account -> 25 resultingNames.add(account.name) 26 } 27 28 val expectedNames = listOf("Alice", "Bob", "Charlie") 29 30 assertEquals(3, resultingNames.size) 31 assertEquals(expectedNames, resultingNames) 32 } 33 34 @Test 35 fun getMessageTimestampReturnsTheHardcodedTimestamp() { 36 val mock = GnunetChatMock() 37 38 val fakeMessage = ChatMessage(ChatContext(null, null, false, false), "", 0, null, MessageKind.TEXT, null) 39 val resultTimestamp = mock.getMessageTimestamp(fakeMessage) 40 41 assertEquals(123456789L, resultTimestamp) 42 } 43 44 @Test 45 fun parseUriReturnsAChatUriObjectWithTheCorrectUri() { 46 val mock = GnunetChatMock() 47 val testUriString = "gnunet://example-uri/12345" 48 49 val resultChatUri = mock.parseUri(testUriString) 50 51 assertEquals(testUriString, resultChatUri.error) 52 } 53 54 @Test 55 fun isMessageRecentAlwaysReturnsOk() { 56 val mock = GnunetChatMock() 57 58 val fakeMessage = ChatMessage(ChatContext(null, null, false, false), "", 0, null, MessageKind.TEXT, null) 59 60 val result = mock.isMessageRecent(fakeMessage) 61 62 assertEquals(GnunetReturnValue.OK, result) 63 } 64 65 @Test 66 fun getMessageKindAlwaysReturnsText() { 67 val mock = GnunetChatMock() 68 69 val fakeMessage = ChatMessage(ChatContext(null, null, false, false), "", 0, null, MessageKind.TEXT, null) 70 71 val result = mock.getMessageKind(fakeMessage) 72 73 assertEquals(MessageKind.TEXT, result) 74 } 75 76 @Test 77 fun destroyUriSetsTheLastDestroyedUriProperty() { 78 val mock = GnunetChatMock() 79 val fakeUri = ChatUri("gnunet://test-uri-to-destroy") 80 81 mock.destroyUri(fakeUri) 82 83 assertEquals(fakeUri, mock.lastDestroyedUri) 84 } 85 86 @Test 87 fun getContactUserPointerReturnsAHardcodedString() { 88 val mock = GnunetChatMock() 89 90 val fakeContact = ChatContact(ChatContext(null, null, false, false), "") 91 92 val result = mock.getContactUserPointer(fakeContact) 93 94 assertEquals("fake-user-pointer-123", result) 95 } 96 97 @Test 98 fun setContactUserPointerSetsTheLastSetUserPointerProperty() { 99 val mock = GnunetChatMock() 100 val fakeContact = ChatContact(ChatContext(null, null, false, false), "test-contact") 101 val fakePointer = "test-pointer-456" 102 103 mock.setContactUserPointer(fakeContact, fakePointer) 104 105 assertEquals(Pair(fakeContact, fakePointer), mock.lastSetUserPointer) 106 } 107 108 @Test 109 fun getGroupUserPointerReturnsAHardcodedString() { 110 val mock = GnunetChatMock() 111 112 val fakeGroup = ChatGroup(ChatContext(null, null, false, false), "") 113 114 val result = mock.getGroupUserPointer(fakeGroup) 115 116 assertEquals("fake-group-pointer-789", result) 117 } 118 119 @Test 120 fun setGroupUserPointerSetsTheLastSetGroupPointerProperty() { 121 val mock = GnunetChatMock() 122 val fakeGroup = ChatGroup(ChatContext(null, null, false, false), "test-group") 123 val fakePointer = "test-group-pointer-xyz" 124 125 mock.setGroupUserPointer(fakeGroup, fakePointer) 126 127 assertEquals(Pair(fakeGroup, fakePointer), mock.lastSetGroupPointer) 128 } 129 130 @Test 131 fun getMessageForGroupContactReturnsAHardcodedChatMessage() { 132 133 val mock = GnunetChatMock() 134 val fakeGroup = ChatGroup(ChatContext(null, null, false, false), "test-group") 135 val fakeContact = ChatContact(ChatContext(null, null, false, false), "test-contact") 136 137 val resultMessage = mock.getMessageForGroupContact(fakeGroup, fakeContact) 138 139 assertEquals("fake-message-for-group", resultMessage.text) 140 assertEquals(MessageKind.TEXT, resultMessage.kind) 141 assertEquals(fakeContact, resultMessage.sender) // Check it attached the contact 142 } 143 144 @Test 145 fun setMessageForGroupContactSetsTheLastSetMessageForGroupContactProperty() { 146 val mock = GnunetChatMock() 147 val fakeGroup = ChatGroup(ChatContext(null, null, false, false), "test-group") 148 val fakeContact = ChatContact(ChatContext(null, null, false, false), "test-contact") 149 val fakeMessage = ChatMessage(ChatContext(null, null, false, false), "test-msg", 0, null, MessageKind.TEXT, null) 150 151 152 mock.setMessageForGroupContact(fakeGroup, fakeContact, fakeMessage) 153 154 assertEquals(Triple(fakeGroup, fakeContact, fakeMessage), mock.lastSetMessageForGroupContact) 155 } 156 }