95 lines
3.1 KiB
Java
95 lines
3.1 KiB
Java
package com.alexanderlogistics.ksef;
|
|
|
|
import static org.junit.jupiter.api.Assertions.assertFalse;
|
|
import static org.junit.jupiter.api.Assertions.assertNotNull;
|
|
|
|
import org.junit.jupiter.api.BeforeEach;
|
|
import org.junit.jupiter.api.DisplayName;
|
|
import org.junit.jupiter.api.MethodOrderer;
|
|
import org.junit.jupiter.api.Order;
|
|
import org.junit.jupiter.api.Test;
|
|
import org.junit.jupiter.api.TestMethodOrder;
|
|
import org.junit.jupiter.api.extension.ExtendWith;
|
|
import org.mockito.junit.jupiter.MockitoExtension;
|
|
|
|
@ExtendWith(MockitoExtension.class)
|
|
@TestMethodOrder(MethodOrderer.OrderAnnotation.class)
|
|
public class KSeFAuthManagerTest {
|
|
|
|
private KSeFAuthManager manager;
|
|
|
|
@BeforeEach
|
|
void setup() throws Exception {
|
|
manager = new KSeFAuthManager();
|
|
|
|
// Test config
|
|
manager.setKsefToken(Params.TOKEN);
|
|
manager.setKsefNip(Params.NIP);
|
|
manager.setKsefEndpoint("https://ksef-test.mf.gov.pl/api/v2");
|
|
manager.setDebug(true);
|
|
|
|
// init() ausführen
|
|
manager.init();
|
|
}
|
|
|
|
// ------------------------------------------------------------
|
|
// 1) Challenge abholen
|
|
// ------------------------------------------------------------
|
|
@Test
|
|
@Order(1)
|
|
@DisplayName("GET /auth/challenge should return a challenge")
|
|
void testChallenge() throws Exception {
|
|
|
|
manager.getChallenge();
|
|
|
|
assertNotNull(
|
|
manager.getChallengeValue(),
|
|
"Challenge darf nicht NULL sein");
|
|
|
|
assertFalse(
|
|
manager.getChallengeValue().isBlank(),
|
|
"Challenge darf nicht leer sein");
|
|
|
|
System.out.println("Challenge = " + manager.getChallengeValue());
|
|
}
|
|
|
|
// ------------------------------------------------------------
|
|
// 2) Zertifikate holen (nur Public Keys)
|
|
// ------------------------------------------------------------
|
|
@Test
|
|
@Order(2)
|
|
@DisplayName("GET /security/public-key-certificates should return symmetric key certificate")
|
|
void testPublicKeys() throws Exception {
|
|
|
|
manager.getKsefPublicKeys();
|
|
|
|
assertNotNull(manager.getSymmetricPublicKey(), "Symmetric RSA PublicKey muss vorhanden sein");
|
|
assertNotNull(manager.getSymmetricCertBase64(), "Base64 Zertifikat muss vorhanden sein");
|
|
|
|
System.out.println("Symmetric PublicKey OK");
|
|
}
|
|
|
|
// ------------------------------------------------------------
|
|
// 3) KSeF Token Request
|
|
// ------------------------------------------------------------
|
|
@Test
|
|
@Order(3)
|
|
@DisplayName("POST /auth/ksef-token should return a token")
|
|
void testKsefToken() throws Exception {
|
|
|
|
// Challenge muss vorher geholt worden sein
|
|
manager.getChallenge();
|
|
|
|
// Token verschlüsseln
|
|
manager.generateAuthToken();
|
|
|
|
// Token-Call durchführen
|
|
String authToken = manager.getAuthToken();
|
|
assertNotNull(authToken, "auth token darf nicht NULL sein");
|
|
|
|
String refNumber = manager.getRefNumber();
|
|
assertNotNull(refNumber, "refNumber darf nicht NULL sein");
|
|
|
|
System.out.println("Received KSeF Token OK");
|
|
}
|
|
}
|