mirror of
https://github.com/pcvolkmer/onkostar-plugin-dnpm.git
synced 2025-07-02 01:02:55 +00:00
Issue #9: Entspricht der Code aus OS dem ATC-Schema, verwende Substanz als ATCCode
This commit is contained in:
@ -48,4 +48,15 @@ public class AtcCode implements AgentCode {
|
||||
public int hashCode() {
|
||||
return Objects.hash(code.toLowerCase(), name.toLowerCase());
|
||||
}
|
||||
|
||||
/**
|
||||
* Prüft auf gültiges ATCCode-Schema ab Ebene 2
|
||||
* @param code Der zu prüfende Code
|
||||
* @return Gibt <code>true</code> zurück, wenn der angegebene Code dem ATCCode-Schema entspricht
|
||||
*/
|
||||
public static boolean isAtcCode(String code) {
|
||||
return null != code
|
||||
&& ! code.isBlank()
|
||||
&& code.matches("[ABCDGHJLMNPRSV][0-2][1-9]([A-Z]([A-Z]([0-9]{2})?)?)?");
|
||||
}
|
||||
}
|
@ -1,6 +1,7 @@
|
||||
package ATCCodes.services;
|
||||
|
||||
import ATCCodes.AgentCode;
|
||||
import ATCCodes.AtcCode;
|
||||
import ATCCodes.UnregisteredCode;
|
||||
import org.springframework.jdbc.core.JdbcTemplate;
|
||||
import org.springframework.stereotype.Service;
|
||||
@ -47,8 +48,14 @@ public class OnkostarAgentCodeService implements AgentCodeService {
|
||||
return jdbcTemplate.query(
|
||||
sql,
|
||||
new Object[]{query + "%", "%" + query + "%", "%" + query + "%"},
|
||||
(resultSet, i) ->
|
||||
new UnregisteredCode(resultSet.getString("code"), resultSet.getString("shortdesc"))
|
||||
(resultSet, i) -> {
|
||||
var code = resultSet.getString("code");
|
||||
var shortdesc = resultSet.getString("shortdesc");
|
||||
if (AtcCode.isAtcCode(code)) {
|
||||
return new AtcCode(code, shortdesc);
|
||||
}
|
||||
return new UnregisteredCode(code, shortdesc);
|
||||
}
|
||||
);
|
||||
}
|
||||
}
|
28
src/test/java/ATCCodes/AtcCodeTest.java
Normal file
28
src/test/java/ATCCodes/AtcCodeTest.java
Normal file
@ -0,0 +1,28 @@
|
||||
package ATCCodes;
|
||||
|
||||
import org.junit.jupiter.api.Test;
|
||||
|
||||
import static org.junit.jupiter.api.Assertions.assertFalse;
|
||||
import static org.junit.jupiter.api.Assertions.assertTrue;
|
||||
|
||||
public class AtcCodeTest {
|
||||
|
||||
@Test
|
||||
void testShouldDetectAtcCodeScheme() {
|
||||
assertTrue(AtcCode.isAtcCode("L01"));
|
||||
assertTrue(AtcCode.isAtcCode("L01A"));
|
||||
assertTrue(AtcCode.isAtcCode("L01AA"));
|
||||
assertTrue(AtcCode.isAtcCode("L01AA01"));
|
||||
}
|
||||
|
||||
@Test
|
||||
void testShouldDetectInvalidAtcCodeScheme() {
|
||||
assertFalse(AtcCode.isAtcCode(null));
|
||||
assertFalse(AtcCode.isAtcCode(" "));
|
||||
assertFalse(AtcCode.isAtcCode("irgendwas"));
|
||||
assertFalse(AtcCode.isAtcCode("L00AA"));
|
||||
assertFalse(AtcCode.isAtcCode("Z01AA"));
|
||||
assertFalse(AtcCode.isAtcCode("L01AA0"));
|
||||
}
|
||||
|
||||
}
|
Reference in New Issue
Block a user