|
| 1 | +package com.smartdevicelink.test.protocol.enums; |
| 2 | + |
| 3 | +import com.smartdevicelink.protocol.enums.QueryErrorCode; |
| 4 | +import com.smartdevicelink.test.Validator; |
| 5 | + |
| 6 | +import junit.framework.TestCase; |
| 7 | + |
| 8 | +import java.util.Vector; |
| 9 | + |
| 10 | +public class QueryErrorCodeTests extends TestCase { |
| 11 | + |
| 12 | + private Vector<QueryErrorCode> list = QueryErrorCode.getList(); |
| 13 | + |
| 14 | + public void testValidEnums() { |
| 15 | + final byte ERROR_SUCCESS_BYTE = (byte) 0x00; |
| 16 | + final String ERROR_SUCCESS_STRING = "ERROR_SUCCESS"; |
| 17 | + |
| 18 | + final byte ERROR_INVALID_QUERY_SIZE_BYTE = (byte) 0x01; |
| 19 | + final String ERROR_INVALID_QUERY_SIZE_STRING = "ERROR_INVALID_QUERY_SIZE"; |
| 20 | + |
| 21 | + final byte ERROR_INVALID_QUERY_ID_BYTE = (byte) 0x02; |
| 22 | + final String ERROR_INVALID_QUERY_ID_STRING = "ERROR_INVALID_QUERY_ID"; |
| 23 | + |
| 24 | + final byte ERROR_NOT_SUPPORTED_BYTE = (byte) 0x03; |
| 25 | + final String ERROR_NOT_SUPPORTED_STRING = "ERROR_NOT_SUPPORTED"; |
| 26 | + |
| 27 | + final byte ERROR_SERVICE_ALREADY_PROTECTED_BYTE = (byte) 0x04; |
| 28 | + final String ERROR_SERVICE_ALREADY_PROTECTED_STRING = "ERROR_SERVICE_ALREADY_PROTECTED"; |
| 29 | + |
| 30 | + final byte ERROR_SERVICE_NOT_PROTECTED_BYTE = (byte) 0x05; |
| 31 | + final String ERROR_SERVICE_NOT_PROTECTED_STRING = "ERROR_SERVICE_NOT_PROTECTED"; |
| 32 | + |
| 33 | + final byte ERROR_DECRYPTION_FAILED_BYTE = (byte) 0x06; |
| 34 | + final String ERROR_DECRYPTION_FAILED_STRING = "ERROR_DECRYPTION_FAILED"; |
| 35 | + |
| 36 | + final byte ERROR_ENCRYPTION_FAILED_BYTE = (byte) 0x07; |
| 37 | + final String ERROR_ENCRYPTION_FAILED_STRING = "ERROR_ENCRYPTION_FAILED"; |
| 38 | + |
| 39 | + final byte ERROR_SSL_INVALID_DATA_BYTE = (byte) 0x08; |
| 40 | + final String ERROR_SSL_INVALID_DATA_STRING = "ERROR_SSL_INVALID_DATA"; |
| 41 | + |
| 42 | + final byte ERROR_HANDSHAKE_FAILED_BYTE = (byte) 0x09; |
| 43 | + final String ERROR_HANDSHAKE_FAILED_STRING = "ERROR_HANDSHAKE_FAILED"; |
| 44 | + |
| 45 | + final byte INVALID_CERT_BYTE = (byte) 0x0A; |
| 46 | + final String INVALID_CERT_STRING = "INVALID_CERT"; |
| 47 | + |
| 48 | + final byte EXPIRED_CERT_BYTE = (byte) 0x0B; |
| 49 | + final String EXPIRED_CERT_STRING = "EXPIRED_CERT"; |
| 50 | + |
| 51 | + final byte ERROR_INTERNAL_BYTE = (byte) 0xFF; |
| 52 | + final String ERROR_INTERNAL_STRING = "ERROR_INTERNAL"; |
| 53 | + |
| 54 | + final byte ERROR_UNKNOWN_INTERNAL_ERROR_BYTE = (byte) 0xFE; |
| 55 | + final String ERROR_UNKNOWN_INTERNAL_ERROR_STRING = "ERROR_UNKNOWN_INTERNAL_ERROR"; |
| 56 | + |
| 57 | + try { |
| 58 | + assertNotNull("QueryErrorCode list returned null", list); |
| 59 | + |
| 60 | + QueryErrorCode enumSuccess = (QueryErrorCode) QueryErrorCode.get(list, ERROR_SUCCESS_BYTE); |
| 61 | + QueryErrorCode enumInvalidQuerySize = (QueryErrorCode) QueryErrorCode.get(list, ERROR_INVALID_QUERY_SIZE_BYTE); |
| 62 | + QueryErrorCode enumInvalidQueryID = (QueryErrorCode) QueryErrorCode.get(list, ERROR_INVALID_QUERY_ID_BYTE); |
| 63 | + QueryErrorCode enumNotSupported = (QueryErrorCode) QueryErrorCode.get(list, ERROR_NOT_SUPPORTED_BYTE); |
| 64 | + QueryErrorCode enumServiceAlreadyProtected = (QueryErrorCode) QueryErrorCode.get(list, ERROR_SERVICE_ALREADY_PROTECTED_BYTE); |
| 65 | + QueryErrorCode enumServiceNotProtected = (QueryErrorCode) QueryErrorCode.get(list, ERROR_SERVICE_NOT_PROTECTED_BYTE); |
| 66 | + QueryErrorCode enumDecryptionFailed = (QueryErrorCode) QueryErrorCode.get(list, ERROR_DECRYPTION_FAILED_BYTE); |
| 67 | + QueryErrorCode enumEncryptionFailed = (QueryErrorCode) QueryErrorCode.get(list, ERROR_ENCRYPTION_FAILED_BYTE); |
| 68 | + QueryErrorCode enumSSLInvalidData = (QueryErrorCode) QueryErrorCode.get(list, ERROR_SSL_INVALID_DATA_BYTE); |
| 69 | + QueryErrorCode enumHandshakeFailed = (QueryErrorCode) QueryErrorCode.get(list, ERROR_HANDSHAKE_FAILED_BYTE); |
| 70 | + QueryErrorCode enumInvalidCert = (QueryErrorCode) QueryErrorCode.get(list, INVALID_CERT_BYTE); |
| 71 | + QueryErrorCode enumExpiredCert = (QueryErrorCode) QueryErrorCode.get(list, EXPIRED_CERT_BYTE); |
| 72 | + QueryErrorCode enumInternal = (QueryErrorCode) QueryErrorCode.get(list, ERROR_INTERNAL_BYTE); |
| 73 | + QueryErrorCode enumUnknownInternalError = (QueryErrorCode) QueryErrorCode.get(list, ERROR_UNKNOWN_INTERNAL_ERROR_BYTE); |
| 74 | + |
| 75 | + assertNotNull("Success byte match returned null", enumSuccess); |
| 76 | + assertNotNull("Invalid Query Size byte match returned null", enumInvalidQuerySize); |
| 77 | + assertNotNull("Invalid Query ID byte match returned null", enumInvalidQueryID); |
| 78 | + assertNotNull("Not Supported byte match returned null", enumNotSupported); |
| 79 | + assertNotNull("Service Already Protected byte match returned null", enumServiceAlreadyProtected); |
| 80 | + assertNotNull("Service Not Protected byte match returned null", enumServiceNotProtected); |
| 81 | + assertNotNull("Decryption Failed byte match returned null", enumDecryptionFailed); |
| 82 | + assertNotNull("Encryption Failed byte match returned null", enumEncryptionFailed); |
| 83 | + assertNotNull("SSL Invalid Data byte match returned null", enumSSLInvalidData); |
| 84 | + assertNotNull("Handshake Failed byte match returned null", enumHandshakeFailed); |
| 85 | + assertNotNull("Invalid Cert byte match returned null", enumInvalidCert); |
| 86 | + assertNotNull("Expired Cert byte match returned null", enumExpiredCert); |
| 87 | + assertNotNull("Internal byte match returned null", enumInternal); |
| 88 | + assertNotNull("Unknown Internal byte match returned null", enumUnknownInternalError); |
| 89 | + |
| 90 | + enumSuccess = (QueryErrorCode) QueryErrorCode.get(list, ERROR_SUCCESS_STRING); |
| 91 | + enumInvalidQuerySize = (QueryErrorCode) QueryErrorCode.get(list, ERROR_INVALID_QUERY_SIZE_STRING); |
| 92 | + enumInvalidQueryID = (QueryErrorCode) QueryErrorCode.get(list, ERROR_INVALID_QUERY_ID_STRING); |
| 93 | + enumNotSupported = (QueryErrorCode) QueryErrorCode.get(list, ERROR_NOT_SUPPORTED_STRING); |
| 94 | + enumServiceAlreadyProtected = (QueryErrorCode) QueryErrorCode.get(list, ERROR_SERVICE_ALREADY_PROTECTED_STRING); |
| 95 | + enumServiceNotProtected = (QueryErrorCode) QueryErrorCode.get(list, ERROR_SERVICE_NOT_PROTECTED_STRING); |
| 96 | + enumDecryptionFailed = (QueryErrorCode) QueryErrorCode.get(list, ERROR_DECRYPTION_FAILED_STRING); |
| 97 | + enumEncryptionFailed = (QueryErrorCode) QueryErrorCode.get(list, ERROR_ENCRYPTION_FAILED_STRING); |
| 98 | + enumSSLInvalidData = (QueryErrorCode) QueryErrorCode.get(list, ERROR_SSL_INVALID_DATA_STRING); |
| 99 | + enumHandshakeFailed = (QueryErrorCode) QueryErrorCode.get(list, ERROR_HANDSHAKE_FAILED_STRING); |
| 100 | + enumInvalidCert = (QueryErrorCode) QueryErrorCode.get(list, INVALID_CERT_STRING); |
| 101 | + enumExpiredCert = (QueryErrorCode) QueryErrorCode.get(list, EXPIRED_CERT_STRING); |
| 102 | + enumInternal = (QueryErrorCode) QueryErrorCode.get(list, ERROR_INTERNAL_STRING); |
| 103 | + enumUnknownInternalError = (QueryErrorCode) QueryErrorCode.get(list, ERROR_UNKNOWN_INTERNAL_ERROR_STRING); |
| 104 | + |
| 105 | + assertNotNull("Success string match returned null", enumSuccess); |
| 106 | + assertNotNull("Invalid Query Size string match returned null", enumInvalidQuerySize); |
| 107 | + assertNotNull("Invalid Query ID string match returned null", enumInvalidQueryID); |
| 108 | + assertNotNull("Not Supported string match returned null", enumNotSupported); |
| 109 | + assertNotNull("Service Already Protected string match returned null", enumServiceAlreadyProtected); |
| 110 | + assertNotNull("Service Not Protected string match returned null", enumServiceNotProtected); |
| 111 | + assertNotNull("Decryption Failed string match returned null", enumDecryptionFailed); |
| 112 | + assertNotNull("Encryption Failed string match returned null", enumEncryptionFailed); |
| 113 | + assertNotNull("SSL Invalid Data string match returned null", enumSSLInvalidData); |
| 114 | + assertNotNull("Handshake Failed string match returned null", enumHandshakeFailed); |
| 115 | + assertNotNull("Invalid Cert string match returned null", enumInvalidCert); |
| 116 | + assertNotNull("Expired Cert string match returned null", enumExpiredCert); |
| 117 | + assertNotNull("Internal string match returned null", enumInternal); |
| 118 | + assertNotNull("Unknown Internal string match returned null", enumUnknownInternalError); |
| 119 | + } catch (NullPointerException exception) { |
| 120 | + fail("Null enum list throws NullPointerException."); |
| 121 | + } |
| 122 | + } |
| 123 | + |
| 124 | + public void testInvalidEnum() { |
| 125 | + final byte INVALID_BYTE = (byte) 0xAB; |
| 126 | + final String INVALID_STRING = "Invalid"; |
| 127 | + |
| 128 | + try { |
| 129 | + QueryErrorCode enumInvalid = (QueryErrorCode) QueryErrorCode.get(list, INVALID_BYTE); |
| 130 | + assertNull("Invalid byte match didn't return null", enumInvalid); |
| 131 | + |
| 132 | + enumInvalid = (QueryErrorCode) QueryErrorCode.get(list, INVALID_STRING); |
| 133 | + assertNull("Invalid byte match didn't return null", enumInvalid); |
| 134 | + } catch (IllegalArgumentException exception) { |
| 135 | + fail("Invalid enum throws IllegalArgumentException."); |
| 136 | + } |
| 137 | + } |
| 138 | + |
| 139 | + public void testNullEnum() { |
| 140 | + try { |
| 141 | + QueryErrorCode enumNull = (QueryErrorCode) QueryErrorCode.get(list, null); |
| 142 | + assertNull("Null lookup returns a value", enumNull); |
| 143 | + } catch (NullPointerException exception) { |
| 144 | + fail("Null string throws NullPointerException."); |
| 145 | + } |
| 146 | + } |
| 147 | + |
| 148 | + public void testListEnum() { |
| 149 | + Vector<QueryErrorCode> enumTestList = new Vector<>(); |
| 150 | + enumTestList.add(QueryErrorCode.ERROR_SUCCESS); |
| 151 | + enumTestList.add(QueryErrorCode.ERROR_INVALID_QUERY_SIZE); |
| 152 | + enumTestList.add(QueryErrorCode.ERROR_INVALID_QUERY_ID); |
| 153 | + enumTestList.add(QueryErrorCode.ERROR_NOT_SUPPORTED); |
| 154 | + enumTestList.add(QueryErrorCode.ERROR_SERVICE_ALREADY_PROTECTED); |
| 155 | + enumTestList.add(QueryErrorCode.ERROR_SERVICE_NOT_PROTECTED); |
| 156 | + enumTestList.add(QueryErrorCode.ERROR_DECRYPTION_FAILED); |
| 157 | + enumTestList.add(QueryErrorCode.ERROR_ENCRYPTION_FAILED); |
| 158 | + enumTestList.add(QueryErrorCode.ERROR_SSL_INVALID_DATA); |
| 159 | + enumTestList.add(QueryErrorCode.ERROR_HANDSHAKE_FAILED); |
| 160 | + enumTestList.add(QueryErrorCode.INVALID_CERT); |
| 161 | + enumTestList.add(QueryErrorCode.EXPIRED_CERT); |
| 162 | + enumTestList.add(QueryErrorCode.ERROR_INTERNAL); |
| 163 | + enumTestList.add(QueryErrorCode.ERROR_UNKNOWN_INTERNAL_ERROR); |
| 164 | + |
| 165 | + assertTrue("List does not match enum test list.", |
| 166 | + list.containsAll(enumTestList) && |
| 167 | + enumTestList.containsAll(list)); |
| 168 | + |
| 169 | + QueryErrorCode[] enumValueArray = QueryErrorCode.values(); |
| 170 | + QueryErrorCode[] enumTestArray = { |
| 171 | + QueryErrorCode.ERROR_SUCCESS, |
| 172 | + QueryErrorCode.ERROR_INVALID_QUERY_SIZE, |
| 173 | + QueryErrorCode.ERROR_INVALID_QUERY_ID, |
| 174 | + QueryErrorCode.ERROR_NOT_SUPPORTED, |
| 175 | + QueryErrorCode.ERROR_SERVICE_ALREADY_PROTECTED, |
| 176 | + QueryErrorCode.ERROR_SERVICE_NOT_PROTECTED, |
| 177 | + QueryErrorCode.ERROR_DECRYPTION_FAILED, |
| 178 | + QueryErrorCode.ERROR_ENCRYPTION_FAILED, |
| 179 | + QueryErrorCode.ERROR_SSL_INVALID_DATA, |
| 180 | + QueryErrorCode.ERROR_HANDSHAKE_FAILED, |
| 181 | + QueryErrorCode.INVALID_CERT, |
| 182 | + QueryErrorCode.EXPIRED_CERT, |
| 183 | + QueryErrorCode.ERROR_INTERNAL, |
| 184 | + QueryErrorCode.ERROR_UNKNOWN_INTERNAL_ERROR |
| 185 | + }; |
| 186 | + assertTrue("Array does not match enum values array.", |
| 187 | + Validator.validateQueryErrorCodeArray(enumValueArray, enumTestArray)); |
| 188 | + } |
| 189 | +} |
0 commit comments