Erweitere VoTiAn NG um Auftrags-, Stamm- und Verwaltungsfunktionen
Ergänzt Auftragserfassung und -bearbeitung, Unternehmerbelege, Stornos, Lagerkorrekturen, Stammdaten, Abrechnung, CRM, Formulare, Berichte und Preisverwaltung auf Basis der aktuellen PHP-Anwendung. Enthält Integrations- und Oberflächentests sowie dokumentierte Abgleiche und Prüfstände.
This commit is contained in:
1 parent
42c87282ee
commit
363bc27c26
190 files changed
+14815
-1857
No files matched your search
@@ -0,0 +1,27 @@
|
||||
package de.stadtbote.votian;
|
||||
import de.stadtbote.votian.database.DatabaseService;
|
||||
import com.fasterxml.jackson.databind.ObjectMapper;
|
||||
import java.util.*;
|
||||
import static org.assertj.core.api.Assertions.*;
|
||||
import static org.mockito.Mockito.*;
|
||||
import static org.mockito.ArgumentMatchers.*;
|
||||
import static de.stadtbote.votian.AddressAdministration.*;
|
||||
public class AddressIntegrationAssertions {
|
||||
public static void verify(DatabaseService db){
|
||||
var json=new ObjectMapper();var user=AppointmentServiceTest.user(2);var service=new AddressAdministration(db,json,new OrderEntryCatalog(db));
|
||||
var query=new Query("","","","","","","",null,"street",0);
|
||||
var save=new Save(UUID.randomUUID().toString(),"10000","Musterstraße","20095","Hamburg","DE","1","20",1);
|
||||
assertThat(service.create(user,Kind.POSTAL,save)).containsEntry("state","DONE");assertThat(service.create(user,Kind.POSTAL,save)).containsEntry("state","DONE");assertThat(db.queryForObject("SELECT COUNT(*) FROM serviceplzaddress",Integer.class)).isEqualTo(1);
|
||||
assertThat(service.query(user,Kind.POSTAL,query)).containsEntry("total",1L);
|
||||
var row=db.queryForList(service.select(Kind.POSTAL),7).getFirst();assertThat(row).containsEntry("target","10000").containsEntry("street","Musterstraße");
|
||||
assertThatThrownBy(()->service.remove(user,Kind.POSTAL,new Delete(UUID.randomUUID().toString(),List.of(new Selection(LegacyMapping.id(row,"id"),"stale"))))).hasMessageContaining("409");
|
||||
var wrong=new LegacyUser(user.userId(),user.employeeId(),8,user.username(),user.rights());assertThat(service.query(wrong,Kind.POSTAL,query)).containsEntry("total",0L);assertThatThrownBy(()->service.remove(wrong,Kind.POSTAL,new Delete(UUID.randomUUID().toString(),List.of(new Selection(LegacyMapping.id(row,"id"),AdminSupport.revision(row)))))).hasMessageContaining("404");
|
||||
var failing=spy(db);doThrow(new org.springframework.dao.DataAccessResourceFailureException("commit status unavailable")).when(failing).update(startsWith("UPDATE genericdatacontainer SET gdc_context='DONE'"),any(Object[].class));var interrupted=new AddressAdministration(failing,json,new OrderEntryCatalog(failing));
|
||||
var area=new Save(UUID.randomUUID().toString(),"42","Neue Straße","20095","Hamburg","DE","","",2);
|
||||
assertThat(interrupted.create(user,Kind.AREA,area)).containsEntry("state","PENDING");assertThat(db.queryForObject("SELECT COUNT(*) FROM address WHERE ad_street='Neue Straße'",Integer.class)).isEqualTo(1);assertThat(db.queryForObject("SELECT COUNT(*) FROM serviceplzareaaddress",Integer.class)).isEqualTo(1);
|
||||
assertThat(service.resume(user,Kind.AREA,area.requestId())).containsEntry("state","DONE");assertThat(service.create(user,Kind.AREA,area)).containsEntry("state","DONE");assertThat(db.queryForObject("SELECT COUNT(*) FROM serviceplzareaaddress",Integer.class)).isEqualTo(1);
|
||||
var first=db.queryForList(service.select(Kind.AREA),7).getFirst();assertThat(first).containsEntry("target","0042");assertThat(service.exceptions(user,LegacyMapping.id(first,"id"))).containsExactly(Map.of("house","1a","area","0043"));
|
||||
var remove=new Delete(UUID.randomUUID().toString(),List.of(new Selection(LegacyMapping.id(first,"id"),AdminSupport.revision(first))));assertThat(interrupted.remove(user,Kind.AREA,remove)).containsEntry("state","PENDING");assertThat(service.resume(user,Kind.AREA,remove.requestId())).containsEntry("state","DONE");assertThat(db.queryForObject("SELECT COUNT(*) FROM serviceplzareaaddress",Integer.class)).isZero();assertThat(db.queryForObject("SELECT COUNT(*) FROM address WHERE ad_street='Neue Straße'",Integer.class)).isEqualTo(1);
|
||||
assertThat(service.query(user,Kind.POSTAL,new Query("NOPE","","","","","","",null,"street",0))).containsEntry("total",0L);
|
||||
}
|
||||
}
|
||||
Reference in new issue
Block a user