#39 Added some tests

This commit is contained in:
Marvin Scham
2023-05-23 08:36:05 +02:00
parent 4674f4e826
commit 849ce7825d

View File

@@ -0,0 +1,64 @@
package de.rwu.easydrop.api;
import java.lang.reflect.Field;
import java.net.MalformedURLException;
import java.net.URL;
import org.junit.jupiter.api.Assertions;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;
import org.mockito.MockitoAnnotations;
import de.rwu.easydrop.api.client.AmazonProductDataSource;
public class AmazonProductDataSourceTest {
private AmazonProductDataSource dataSource;
@BeforeEach
public void setup() {
dataSource = new AmazonProductDataSource(
"https://www.example.com/api",
"my-api-key");
MockitoAnnotations.openMocks(this);
}
@Test
public void testConstructor() {
// Arrange
String baseUrl = "https://www.example.com/api";
String apiKey = "my-api-key";
// Assert
try {
Field baseUrlField = AmazonProductDataSource.class.getDeclaredField("baseUrl");
baseUrlField.setAccessible(true);
Assertions.assertEquals(baseUrl, baseUrlField.get(dataSource));
Field apiKeyField = AmazonProductDataSource.class.getDeclaredField("apiKey");
apiKeyField.setAccessible(true);
Assertions.assertEquals(apiKey, apiKeyField.get(dataSource));
} catch (NoSuchFieldException e) {
Assertions.fail();
} catch (IllegalAccessException e) {
Assertions.fail();
}
}
@Test
public void testCreateApiUrl() throws MalformedURLException {
// Test case 1
String productId1 = "12345";
URL expectedUrl1 = new URL(
"https://www.example.com/api/products/2020-08-26/products/12345/offers?productRegion=DE&locale=de_DE");
URL createdUrl1 = dataSource.createApiUrl(productId1);
Assertions.assertEquals(expectedUrl1, createdUrl1);
// Test case 2
String productId2 = "67890";
URL expectedUrl2 = new URL(
"https://www.example.com/api/products/2020-08-26/products/67890/offers?productRegion=DE&locale=de_DE");
URL createdUrl2 = dataSource.createApiUrl(productId2);
Assertions.assertEquals(expectedUrl2, createdUrl2);
}
}