Skip to content

Commit

Permalink
#5 - Fix tests for barcode generator services
Browse files Browse the repository at this point in the history
  • Loading branch information
kocmana committed Feb 22, 2022
1 parent 5add91a commit 94b45c3
Show file tree
Hide file tree
Showing 11 changed files with 56 additions and 11 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -33,7 +33,7 @@ void generateEan13_ShouldReturnOkWithImage() throws Exception {
//given
var barcode = "123456789012";
var requestedBarcode = new Ean13(barcode);
var image = readBufferedImageFromFile("test-ean13.jpg");
var image = readBufferedImageFromFile("ean/test-ean13.jpg");
when(service.generateEan13(requestedBarcode)).thenReturn(image);

//when
Expand All @@ -60,7 +60,7 @@ void generateEan8_ShouldReturnOkWithImage() throws Exception {
//given
var barcode = "1234567";
var requestedBarcode = new Ean8(barcode);
var image = readBufferedImageFromFile("test-ean8.jpg");
var image = readBufferedImageFromFile("ean/test-ean8.jpg");
when(service.generateEan8(requestedBarcode)).thenReturn(image);

//when
Expand Down
19 changes: 16 additions & 3 deletions src/test/java/at/kocmana/barcodeservice/ean/EanServiceTest.java
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
import static org.assertj.core.api.Assertions.assertThat;

import at.kocmana.barcodeservice.ean.model.Ean13;
import org.junit.jupiter.api.Disabled;
import at.kocmana.barcodeservice.ean.model.Ean8;
import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
Expand All @@ -17,11 +17,10 @@ class EanServiceTest {
EanService underTest;

@Test
@Disabled("This test is incorrectly failing and should be revisited as issue #")
void whenGenerateEan13_CorrectImageIsReturned() {
//given
var ean13 = new Ean13("123456789012");
var filename = "test-ean13.jpg";
var filename = "ean/test-ean13.bmp";
var expectedImage = readBufferedImageFromFile(filename);

//when
Expand All @@ -31,4 +30,18 @@ void whenGenerateEan13_CorrectImageIsReturned() {
assertThat(compareImages(actualResult, expectedImage)).isTrue();
}

@Test
void whenGenerateEan8_CorrectImageIsReturned() {
//given
var ean8 = new Ean8("1234567");
var filename = "ean/test-ean8.bmp";
var expectedImage = readBufferedImageFromFile(filename);

//when
var actualResult = underTest.generateEan8(ean8);

//then
assertThat(compareImages(actualResult, expectedImage)).isTrue();
}

}
Original file line number Diff line number Diff line change
Expand Up @@ -33,7 +33,7 @@ void generateQrCode_ShouldReturnOkWithImage() throws Exception {
//given
var payload = "some payload";
var request = new Qr(payload);
var requestedQrCode = readBufferedImageFromFile("test-qr.jpg");
var requestedQrCode = readBufferedImageFromFile("qr/test-qr.jpg");
when(service.generateQrCode(request)).thenReturn(requestedQrCode);

//when
Expand Down
32 changes: 32 additions & 0 deletions src/test/java/at/kocmana/barcodeservice/qr/QrServiceTest.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
package at.kocmana.barcodeservice.qr;

import static at.kocmana.barcodeservice.testutil.FileUtil.readBufferedImageFromFile;
import static at.kocmana.barcodeservice.testutil.ImageUtil.compareImages;
import static org.assertj.core.api.Assertions.assertThat;

import at.kocmana.barcodeservice.qr.model.Qr;
import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;

@SpringBootTest(classes = QrServiceImpl.class)
class QrServiceTest {

@Autowired
QrService underTest;

@Test
void whenGenerateQrCode_CorrectImageIsReturned() {
//given
var qr = new Qr("some payload");
var filename = "qr/test-qr.bmp";
var expectedImage = readBufferedImageFromFile(filename);

//when
var actualResult = underTest.generateQrCode(qr);

//then
assertThat(compareImages(actualResult, expectedImage)).isTrue();
}

}
10 changes: 5 additions & 5 deletions src/test/java/at/kocmana/barcodeservice/testutil/ImageUtil.java
Original file line number Diff line number Diff line change
Expand Up @@ -22,17 +22,17 @@ public static byte[] toByteArray(BufferedImage image) {
return byteArrayOutputStream.toByteArray();
}

public static boolean compareImages(BufferedImage imgA, BufferedImage imgB) {
if (imgA.getWidth() != imgB.getWidth() || imgA.getHeight() != imgB.getHeight()) {
public static boolean compareImages(BufferedImage imageA, BufferedImage imageB) {
if (imageA.getWidth() != imageB.getWidth() || imageA.getHeight() != imageB.getHeight()) {
return false;
}

int width = imgA.getWidth();
int height = imgA.getHeight();
int width = imageA.getWidth();
int height = imageA.getHeight();

for (int y = 0; y < height; y++) {
for (int x = 0; x < width; x++) {
if (imgA.getRGB(x, y) != imgB.getRGB(x, y)) {
if (imageA.getRGB(x, y) != imageB.getRGB(x, y)) {
return false;
}
}
Expand Down
Binary file added src/test/resources/ean/test-ean13.bmp
Binary file not shown.
File renamed without changes
Binary file added src/test/resources/ean/test-ean8.bmp
Binary file not shown.
File renamed without changes
Binary file added src/test/resources/qr/test-qr.bmp
Binary file not shown.
File renamed without changes

0 comments on commit 94b45c3

Please sign in to comment.