# 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`): ```powershell .\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`: ```powershell 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: ```powershell 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.