Skip to content
Snippets Groups Projects
Commit e5e58989 authored by OZGCloud's avatar OZGCloud
Browse files

OZG-3373 set month number as hex value

parent 2c740b83
Branches
Tags
No related merge requests found
package de.ozgcloud.eingang.common.vorgang;
import java.time.LocalDate;
import java.util.Random;
import org.apache.commons.lang3.RandomStringUtils;
import org.springframework.stereotype.Component;
......@@ -12,18 +11,15 @@ import lombok.RequiredArgsConstructor;
@RequiredArgsConstructor
public class VorgangNummerSupplier {
static final String VORGANGNUMMER_TEMPLATE = "%d%02X%02d-%s";
static final String VORGANGNUMMER_TEMPLATE = "%d%X%02d-%s";
static final char[] BASE30_ALPHABET = { '2', '3', '4', '5', '6', '7', '8', '9', 'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'J', 'K', 'M',
'N', 'P', 'Q', 'R', 'S', 'T', 'V', 'W', 'X', 'Y', 'Z' };
static final int SUFFIX_LENGTH = 6;
static final int NEXT_MAX_HEX_NUMBER = 256;
private final Random randomGenerator = new Random();
public String get() {
var today = LocalDate.now();
var lastYearNumber = today.getYear() % 10;
return VORGANGNUMMER_TEMPLATE.formatted(lastYearNumber, randomGenerator.nextInt(NEXT_MAX_HEX_NUMBER), today.getDayOfMonth(),
return VORGANGNUMMER_TEMPLATE.formatted(lastYearNumber, today.getMonthValue(), today.getDayOfMonth(),
RandomStringUtils.random(SUFFIX_LENGTH, BASE30_ALPHABET));
}
......
......@@ -20,15 +20,13 @@ class VorgangNummerSupplierTest {
@InjectMocks
private VorgangNummerSupplier vorgangNummerSupplier;
@Mock
private Random randomGenerator;
@Test
@DisplayName("should add random suffix of length 6")
void shouldAddSuffix() {
var result = vorgangNummerSupplier.get();
assertThat(result).hasSize(12);
assertThat(result).hasSize(11);
}
@Test
......@@ -44,7 +42,7 @@ class VorgangNummerSupplierTest {
void shouldHaveSize() {
var result = vorgangNummerSupplier.get();
assertThat(getPrefix(result)).hasSize(6);
assertThat(getPrefix(result)).hasSize(5);
}
private String getPrefix(String string) {
......@@ -62,14 +60,11 @@ class VorgangNummerSupplierTest {
@Test
void shouldAddMonthValueSecond() {
var value = 244;
var hexValue = "F4";
when(randomGenerator.nextInt(anyInt())).thenReturn(value);
ReflectionTestUtils.setField(vorgangNummerSupplier, "randomGenerator", randomGenerator);
var monthHexValue = "%X".formatted(LocalDate.now().getMonthValue());
var result = vorgangNummerSupplier.get();
assertThat(result.substring(1, 3)).isEqualTo(hexValue);
assertThat(result.substring(1, 2)).isEqualTo(monthHexValue);
}
@Test
......@@ -78,14 +73,14 @@ class VorgangNummerSupplierTest {
var result = vorgangNummerSupplier.get();
assertThat(result.substring(3, 5)).isEqualTo(dayValue);
assertThat(result.substring(2, 4)).isEqualTo(dayValue);
}
@Test
void shouldAddHyphenAtEnd() {
var result = vorgangNummerSupplier.get();
assertThat(result.charAt(5)).isEqualTo('-');
assertThat(result.charAt(4)).isEqualTo('-');
}
}
\ No newline at end of file
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment