namespace App\Tests\Application\Analytics\Brand\Explode; use App\Tests\Integration\Controller\DruidTestCase; class AnalyticsInitiatorInsightsMetricsConversionExplodeTest extends DruidTestCase { public function testInitiatorInsightsMetricsIsExecutedAsPartOfMainQuery(): void { $sql = 'SELECT device_id AS "device_id", LOOKUP(device_id, \'device_name\') AS "device_name", COUNT(DISTINCT(conversion_id)) AS "total_conversions", SUM(sum_row_count) AS "initiator_total_conversion_items" FROM conversion_item WHERE (campaign_id = ?) AND (__time BETWEEN ? AND ?) GROUP BY 1 LIMIT 10000'; $params = [ 'parameters' => [ [ 'type' => 'VARCHAR', 'value' => '111111l10' ], [ 'type' => 'TIMESTAMP', 'value' => '2021-03-01T00:00:00' ], [ 'type' => 'TIMESTAMP', 'value' => '2022-03-02T00:00:00' ], ] ]; $data = ' [ { "device_id": "1", "device_name": "Other", "total_conversions": 2385, "initiator_total_conversion_items": 8311 }, { "device_id": "2", "device_name": "Desktop", "total_conversions": 2450, "initiator_total_conversion_items": 8177 }, { "device_id": "3", "device_name": "Mobile", "total_conversions": 2285, "initiator_total_conversion_items": 8321 }, { "device_id": "4", "device_name": "Tablet", "total_conversions": 2350, "initiator_total_conversion_items": 8468 }, { "device_id": "5", "device_name": "Bot", "total_conversions": 2395, "initiator_total_conversion_items": 8364 } ] '; $mock = $this->createDruidMock(); $mock->expect($sql, $params)->willRespondWith($data); $response = $this->jsonRequest( 'POST', '/v3/brand/analytics/conversions/explode', [ 'date_time_ranges' => [ [ 'start' => '2021-03-01T00:00:00+00:00', 'end' => '2022-03-02T00:00:00+00:00', ] ], 'scope' => [ 'campaigns' => [ '111111l10' ], ], 'metrics' => [ 'total_conversions', 'initiator_total_conversion_items' ], 'group_by' => [ 'device' ] ] ); // $expectedData = json_decode($data, true); self::assertResponseIsSuccessful(); self::assertEquals(json_decode($data, true), $response->getData()); } }