2.8 KiB
Testy integracyjne Comarch ERP Optima
Testy z bazą są celowo wykonywane dopiero po ręcznym przygotowaniu i zarejestrowaniu firmy w Optimie. Narzędzia w tym repozytorium nie odtwarzają, nie tworzą ani nie modyfikują konfiguracji baz Optimy.
Przygotowanie
- Skopiuj
src/SmartB2B.Optima.Service/config/optima.json.sampledo lokalnego, ignorowanego przez Git plikusrc/SmartB2B.Optima.Service/config/optima.json. - Uzupełnij nazwę firmy widoczną podczas logowania, operatora, hasło, identyfikator magazynu i connection string SQL.
- Nie dodawaj pliku
optima.jsondo repozytorium ani paczki wdrożeniowej. - W przygotowanej firmie zapewnij kontrolowane dane testowe: kontrahenta, towar, magazyn, walutę oraz definicje RO liczone netto i brutto.
Kontrola bez zapisu
Uruchom wersję opublikowaną dla tej samej architektury co op_base.dll (x86
jest domyślne, opcjonalnie użyj .\publish-optima.ps1 -Architecture x64):
.\release-optima\SmartB2B.Optima.Service.exe --config .\src\SmartB2B.Optima.Service\config\optima.json --check-config
Polecenie sprawdza JSON, zgodność architektury procesu z op_base.dll, rejestrację COM, wersję Optimy, połączenie SQL, logowanie operatora i utworzenie sesji. Nie zapisuje dokumentu.
Scenariusze zapisu przez WAMP
Pierwszy kontrolowany zapis adaptera można wykonać runnerem, który wymaga jawnego
parametru --write-order i domyślnie zapisuje wyłącznie w trybie Buffer:
dotnet run --project .\tests\SmartB2B.Optima.IntegrationTests -- --config .\src\SmartB2B.Optima.Service\config\optima.json --negative-tests --write-order --customer-id 2 --product-code SMARTB2B_TEST_TWR
Zatwierdzenie dokumentu wymaga dodatkowej flagi --approved i powinno być wykonywane
wyłącznie w firmie testowej:
dotnet run --project .\tests\SmartB2B.Optima.IntegrationTests -- --config .\src\SmartB2B.Optima.Service\config\optima.json --write-order --approved --customer-id 2 --product-code SMARTB2B_TEST_TWR
Po pomyślnym --check-config uruchom usługę z tym samym plikiem konfiguracji i sprawdź kolejno:
- RO w buforze (
saveMode: Buffer) i zatwierdzone (saveMode: Approved); - definicję liczoną netto z
price_nettoi brutto zprice_brutto; - rabat, uwagi, numer obcy, magazyn oraz walutę;
- zgodność
order_erp_id,order_erp_symbol,value_nettoivalue_bruttoz dokumentem zapisanym w Optimie; - błędy dla brakującego kontrahenta, produktu, magazynu, waluty i wymaganej ceny;
- parametryzowane
sql_raw, wiele recordsetów, dane binarne oraz błąd SQL; - dwa równoczesne wywołania
place_order— dokumenty mają zostać utworzone kolejno na jednym wątku COM.
Przed testami trybu Approved wykonaj kopię bezpieczeństwa bazy lub użyj firmy przeznaczonej wyłącznie do testów.