Сделать интеграционное тестирование JSON
Мы ищем эксперта, который знает codeception и webception и может создать серию интеграционных тестов. Пожалуйста, ознакомьтесь с прикрепленным файлом с заданием и описанием приложений, прикрепленных к этой задаче.
Мы ожидаем, что вы сделаете следующее:
Настройка:
- Создайте контейнер с установленными codeception и webception
- Используйте тест записи PHP и модуль S3 в коде для подключения хранилища.
- Подключиться к корзине S3 (будут предоставлены ключи API) и скачать файл payload.json (INPUT FILE)
- Отправьте файл payload.json в наш микросервис, который выполняет математические операции (PROCESSOR)
- Подключен к папке S3 (ключи API и подробная информация будут предоставлены), где хранятся результаты (OUTPUT FILES)
Анализ (с использованием OUTPUT FILES):
Comparisons for equality
INPUT: billings.json (Billings in Payload)
OUTPUT: contractPnL.json
Input field | Input Function | Output field | Output Function |
invoiceTax | Sum | period. totalInvoiceValueIncTax - period. totalInvoiceValueExTax | Sum |
invoiceExTax | Sum | period. totalInvoiceValueExTax | Sum |
invoiceIncTax | Sum | period. totalInvoiceValueIncTax | Sum |
status | Filter all with status = VOID | n/a | n/a |
INPUT: timesheets.json (Timesheets in Payload)
OUTPUT: contractPnL.json [period level]
Input field | Input Function | Output field | Output Function |
sourceTimesheetInterval. SourceDurationMin | Sum | Period. timesheetDurationMin | Sum |
INPUT: contractPnL.json [header level]
OUTPUT: contractPnL.json [period level]
Input field | Input Function | Output field | Output Function | |
totalInvoiceValueExTaxInvoiced | Sum | period. totalInvoiceValueExTax | Sum | |
contractRevenue | Sum | period.FPValue or period.RRValue or period.subscriptionValue (whichever exists) | Sum | |
adjustments | Sum | |||
Subtract adjustments from value to get a final result | ||||
contractRevenueToDate | Sum | period.FPValue or period.RRValue or period.subscriptionValue (whichever exists) | Sum Filter by date <= today | |
| | adjustments | Sum Filter by date <= today | |
| | Subtract adjustments from value to get a final result | ||
timesheetDurationMin | Sum | timesheetDurationMin | Sum | |
timesheetDurationMinToDate | Sum | timesheetDurationMin | Sum Filter by date <= today | |
adjustmentsTotal | Sum | adjustments | Sum | |
adjustmentsTotalToDate | Sum | adjustments | Sum Filter by date <= today | |
totalInvoiceValueExTaxToDate | Sum | totalInvoiceValueExTax | Sum Filter by date <= today | |
totalInvoiceValueIncTaxToDate | Sum | totalInvoiceValueIncTax | Sum Filter by date <= today |
INPUT: contractPnL.json [header level]
OUTPUT: contractPnL.json [header level]
Math | Reason for the check |
totalInvoiceValueExTaxToDate - contractRevenueToDate should equal to billingsRevenueDifferenceToDate | Check A/D revenue iscorrect |
Подавать результаты (webception)
- Подключить webception
- Отображение результатов в webception
Результат должен включать Dockerfile и простой Readme, как использовать приложение.
Н./Б.: Мы рассчитываем, что будем работать с кем-то, кто хорошо разбирается в PHP и может хорошо использовать язык для выполнения математических вычислений. Мы не будем использовать какой-либо другой язык.