Skip to content

Commit dbeacfe

Browse files
committed
test: url generation, getAuthentication, pHash, utils unit test case added
1 parent d8c2b5d commit dbeacfe

File tree

6 files changed

+298
-0
lines changed

6 files changed

+298
-0
lines changed
Lines changed: 44 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,44 @@
1+
package io.imagekit.sdk.config;
2+
3+
import org.junit.Test;
4+
import java.io.IOException;
5+
6+
import static org.hamcrest.CoreMatchers.is;
7+
import static org.junit.Assert.*;
8+
9+
public class ConfigurationTest {
10+
11+
Configuration SUT;
12+
13+
@Test
14+
public void configFileExit_validate_successExpected() throws IOException {
15+
SUT=new Configuration();
16+
SUT.setPrivateKey("privateKey");
17+
SUT.setPublicKey("publicKey");
18+
SUT.setUrlEndpoint("endPoint");
19+
20+
boolean result=SUT.validate();
21+
assertTrue(result);
22+
}
23+
24+
@Test(expected = RuntimeException.class)
25+
public void configNotExit_validate_errorExpected() throws IOException {
26+
SUT=new Configuration();
27+
SUT.setPrivateKey("privateKey");
28+
SUT.setUrlEndpoint("endPoint");
29+
30+
boolean result=SUT.validate();
31+
assertTrue(result);
32+
}
33+
34+
@Test
35+
public void config_getter_setter_successExpected() throws IOException {
36+
String privateKey="privateKey";
37+
String publicKey="publicKey";
38+
String endPoint="endPoint";
39+
SUT=new Configuration(publicKey,privateKey,endPoint);
40+
assertThat(privateKey,is(SUT.getPrivateKey()));
41+
assertThat(publicKey,is(SUT.getPublicKey()));
42+
assertThat(endPoint,is(SUT.getUrlEndpoint()));
43+
}
44+
}
Lines changed: 104 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,104 @@
1+
package io.imagekit.sdk.tasks;
2+
3+
4+
import org.junit.After;
5+
import org.junit.Before;
6+
import org.junit.Test;
7+
8+
import java.util.Calendar;
9+
import java.util.Map;
10+
import java.util.UUID;
11+
12+
import static org.hamcrest.CoreMatchers.is;
13+
import static org.junit.Assert.*;
14+
15+
public class CalculationTest {
16+
Calculation SUT;
17+
18+
@Before
19+
public void setUp() throws Exception {
20+
SUT=new Calculation();
21+
}
22+
23+
@Test(expected = RuntimeException.class)
24+
public void nullPrivateKey_getAuthenticatedParams_throwException() {
25+
Calculation.getAuthenticatedParams(UUID.randomUUID().toString(), Calendar.getInstance().getTimeInMillis(),null);
26+
}
27+
28+
@Test
29+
public void privateKeyProvided_getAuthenticatedParams_with_static_input_ExpectedData() {
30+
String token="your_token";
31+
String privateKey="private_key_test";
32+
long expire=1582269249;
33+
Map<String, String> authenticatedParams = Calculation.getAuthenticatedParams(token, expire, privateKey);
34+
assertEquals(token,authenticatedParams.get("token"));
35+
assertEquals(String.valueOf(expire),authenticatedParams.get("expire"));
36+
assertEquals("e71bcd6031016b060d349d212e23e85c791decdd",authenticatedParams.get("signature"));
37+
}
38+
39+
@Test
40+
public void privateKeyProvided_getAuthenticatedParams_ExpectedData() {
41+
String token=UUID.randomUUID().toString();
42+
String privateKey="my_private_key";
43+
long expire=Calendar.getInstance().getTimeInMillis();
44+
Map<String, String> authenticatedParams = Calculation.getAuthenticatedParams(token, expire, privateKey);
45+
assertThat(authenticatedParams.get("token"),is(token));
46+
assertEquals(String.valueOf(expire),authenticatedParams.get("expire"));
47+
assertNotNull(authenticatedParams.get("signature"));
48+
}
49+
50+
@Test
51+
public void expireNotProvided_getAuthenticatedParams_ExpectedData() {
52+
String token=UUID.randomUUID().toString();
53+
String privateKey="my_private_key";
54+
Map<String, String> authenticatedParams = Calculation.getAuthenticatedParams(token,0, privateKey);
55+
assertThat(authenticatedParams.get("token"),is(token));
56+
assertNotNull(authenticatedParams.get("expire"));
57+
assertNotNull(authenticatedParams.get("signature"));
58+
}
59+
60+
@Test
61+
public void sameImage_getHammingDistance_expectedSuccessWith() {
62+
int hammingDistance = Calculation.getHammingDistance("f06830ca9f1e3e90", "f06830ca9f1e3e90");
63+
assertEquals(0,hammingDistance);
64+
}
65+
66+
@Test
67+
public void similarImage_getHammingDistance_expectedSuccessWith() {
68+
int hammingDistance = Calculation.getHammingDistance("2d5ad3936d2e015b", "2d6ed293db36a4fb");
69+
assertEquals(17,hammingDistance);
70+
}
71+
72+
@Test
73+
public void dissimilarImage_getHammingDistance_expectedSuccessWith() {
74+
int hammingDistance = Calculation.getHammingDistance("a4a65595ac94518b", "7838873e791f8400");
75+
assertEquals(37,hammingDistance);
76+
}
77+
78+
@Test(expected = RuntimeException.class)
79+
public void invalidHash_getHammingDistance_throwException() {
80+
int hammingDistance = Calculation.getHammingDistance("a4a65595ac94518Z", "7838873e791f8400");
81+
}
82+
83+
@Test(expected = RuntimeException.class)
84+
public void differentLength_getHammingDistance_throwException() {
85+
int hammingDistance = Calculation.getHammingDistance("a4a65595ac94518b3", "7838873e791f8400");
86+
}
87+
88+
@Test
89+
public void correctHex_isValidHex_trueExpected() {
90+
boolean result=Calculation.isValidHex("a4a65595ac94518b");
91+
assertTrue(result);
92+
}
93+
94+
@Test
95+
public void incorrectHex_isValidHex_falseExpected() {
96+
boolean result=Calculation.isValidHex("a4a65595ac94518T");
97+
assertFalse(result);
98+
}
99+
100+
@After
101+
public void tearDown() throws Exception {
102+
SUT=null;
103+
}
104+
}
Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
package io.imagekit.sdk.tasks;
2+
3+
import org.junit.Before;
4+
import org.junit.Test;
5+
6+
import static org.junit.Assert.*;
7+
8+
public class QueryMakerTest {
9+
10+
QueryMaker SUT;
11+
12+
@Before
13+
public void setUp() throws Exception {
14+
SUT=new QueryMaker();
15+
}
16+
17+
@Test
18+
public void prepareQueary_returnQueryString() {
19+
SUT.put("public=allow");
20+
SUT.put("user=guest");
21+
String param = SUT.get();
22+
assertEquals("public=allow&user=guest",param);
23+
}
24+
25+
@Test
26+
public void withoutEntry_prepareQueary() {
27+
String param = SUT.get();
28+
assertNull(param);
29+
}
30+
}
Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
package io.imagekit.sdk.tasks;
2+
3+
import org.junit.Test;
4+
5+
import static org.hamcrest.CoreMatchers.is;
6+
import static org.junit.Assert.*;
7+
8+
public class UrlGenTest {
9+
@Test
10+
public void signUrl_tests() {
11+
String url="https://test-domain.com/test-endpoint/tr:w-100/test-signed-url.png";
12+
String signature = UrlGen.signUrl("private_key_test", url, "https://test-domain.com/test-endpoint/", 100);
13+
assertThat("5e5037a31a7121cbe2964e220b4338cc6e1ba66d",is(signature));
14+
15+
}
16+
17+
@Test
18+
public void signUrl_tests_expire_zero() {
19+
String url="https://test-domain.com/test-endpoint/tr:w-100/test-signed-url.png";
20+
String signature = UrlGen.signUrl("private_key_test", url, "https://test-domain.com/test-endpoint/", 0);
21+
assertThat("41b3075c40bc84147eb71b8b49ae7fbf349d0f00",is(signature));
22+
23+
}
24+
}
Lines changed: 90 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,90 @@
1+
package io.imagekit.sdk.utils;
2+
3+
import io.imagekit.sdk.config.Configuration;
4+
import org.junit.Test;
5+
6+
import java.io.File;
7+
import java.io.IOException;
8+
import java.net.URL;
9+
import java.util.ArrayList;
10+
import java.util.List;
11+
12+
import static org.hamcrest.CoreMatchers.is;
13+
import static org.junit.Assert.*;
14+
import static org.mockito.Mockito.mock;
15+
16+
public class UtilsTest {
17+
18+
@Test
19+
public void empty_listToString_returnTrue() {
20+
List<String> list=new ArrayList<>();
21+
String data=Utils.listToString(list);
22+
assertNotNull(data);
23+
}
24+
25+
@Test
26+
public void withElements_listToString_returnTrue() {
27+
List<String> list=new ArrayList<>();
28+
list.add("Element 1");
29+
list.add("Element 2");
30+
list.add("Element 3");
31+
String data=Utils.listToString(list);
32+
assertThat("Element 1,Element 2,Element 3",is(data));
33+
}
34+
35+
@Test
36+
public void withNullElements_listToString_returnTrue() {
37+
List<String> list=new ArrayList<>();
38+
list.add("Element 1");
39+
list.add(null);
40+
list.add("Element 2");
41+
String data=Utils.listToString(list);
42+
assertEquals("Element 1,Element 2",data);
43+
}
44+
45+
@Test
46+
public void withNullElements_listToString_returnFalse() {
47+
List<String> list=new ArrayList<>();
48+
list.add("Element 1");
49+
list.add(null);
50+
list.add("Element 2");
51+
String data=Utils.listToString(list);
52+
assertNotEquals("Element 1,null,Element 2",data);
53+
}
54+
55+
@Test
56+
public void validFile_fileToBase64_expectedTrue() {
57+
URL imageURL = UtilsTest.class.getClassLoader().getResource("sample1.jpg");
58+
File file=new File(imageURL.getPath());
59+
String base64 = Utils.fileToBase64(file);
60+
assertNotNull(base64);
61+
}
62+
63+
@Test(expected = Exception.class)
64+
public void noFile_fileToBase64_expectedTrue() {
65+
File file=mock(File.class);
66+
String base64 = Utils.fileToBase64(file);
67+
assertNull(base64);
68+
}
69+
70+
@Test
71+
public void validFile_fileToBytes_expectedTrue() {
72+
URL imageURL = UtilsTest.class.getClassLoader().getResource("sample1.jpg");
73+
File file=new File(imageURL.getPath());
74+
byte[] bytes = Utils.fileToBytes(file);
75+
assertNotNull(bytes);
76+
}
77+
78+
@Test(expected = Exception.class)
79+
public void noFile_fileToBytes_expectedTrue() {
80+
File file=mock(File.class);
81+
byte[] bytes = Utils.fileToBytes(file);
82+
assertNull(bytes);
83+
}
84+
85+
@Test
86+
public void test_getSystemConfig_expectedSuccess() throws IOException {
87+
Configuration config=Utils.getSystemConfig(UtilsTest.class);
88+
assertNotNull(config);
89+
}
90+
}
Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
# Copy this sample file add rename it to "config.properties"
2+
# Put essential values of keys [UrlEndpoint, PrivateKey, PublicKey]
3+
4+
UrlEndpoint=https://test-domain.com/test-endpoint/
5+
PrivateKey=private_key_test
6+
PublicKey=public_key_test

0 commit comments

Comments
 (0)