Files
Sync-Enova365/OPTIMA-INTEGRATION-TESTS.md

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

  1. Skopiuj src/SmartB2B.Optima.Service/config/optima.json.sample do lokalnego, ignorowanego przez Git pliku src/SmartB2B.Optima.Service/config/optima.json.
  2. Uzupełnij nazwę firmy widoczną podczas logowania, operatora, hasło, identyfikator magazynu i connection string SQL.
  3. Nie dodawaj pliku optima.json do repozytorium ani paczki wdrożeniowej.
  4. 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_netto i brutto z price_brutto;
  • rabat, uwagi, numer obcy, magazyn oraz walutę;
  • zgodność order_erp_id, order_erp_symbol, value_netto i value_brutto z 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.