From f3593b831d5afe59e92b739f702783351006564b Mon Sep 17 00:00:00 2001 From: romanetar Date: Fri, 6 Mar 2026 17:37:53 +0100 Subject: [PATCH 1/2] fix: sponsor statistics assignment tweak Signed-off-by: romanetar --- app/Services/Model/Imp/SummitSponsorService.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/Services/Model/Imp/SummitSponsorService.php b/app/Services/Model/Imp/SummitSponsorService.php index b320481e5..2d3624394 100644 --- a/app/Services/Model/Imp/SummitSponsorService.php +++ b/app/Services/Model/Imp/SummitSponsorService.php @@ -1185,7 +1185,7 @@ public function updateSponsorServicesStatistics(Summit $summit, int $sponsor_id, $statistics = $summit_sponsor->getSponsorServicesStatistics(); if (!$statistics) { $statistics = new SponsorStatistics(); - $statistics->setSponsor($summit_sponsor); + $summit_sponsor->setSponsorServicesStatistics($statistics); } return SponsorServicesStatisticsFactory::populate($statistics, $payload); }); From c3b03344ced8e5c8aeea338008c85db1650d7a58 Mon Sep 17 00:00:00 2001 From: romanetar Date: Fri, 6 Mar 2026 18:01:00 +0100 Subject: [PATCH 2/2] fix: sponsor statistics assignment tweak Signed-off-by: romanetar --- .../Model/Imp/SummitSponsorService.php | 3 +- tests/InsertSummitTestData.php | 14 +++++---- tests/OAuth2SummitSponsorApiTest.php | 29 +++++++++++++++++++ 3 files changed, 39 insertions(+), 7 deletions(-) diff --git a/app/Services/Model/Imp/SummitSponsorService.php b/app/Services/Model/Imp/SummitSponsorService.php index 2d3624394..d987f1bc3 100644 --- a/app/Services/Model/Imp/SummitSponsorService.php +++ b/app/Services/Model/Imp/SummitSponsorService.php @@ -1184,8 +1184,9 @@ public function updateSponsorServicesStatistics(Summit $summit, int $sponsor_id, $statistics = $summit_sponsor->getSponsorServicesStatistics(); if (!$statistics) { - $statistics = new SponsorStatistics(); + $statistics = SponsorServicesStatisticsFactory::build($payload); $summit_sponsor->setSponsorServicesStatistics($statistics); + return $statistics; } return SponsorServicesStatisticsFactory::populate($statistics, $payload); }); diff --git a/tests/InsertSummitTestData.php b/tests/InsertSummitTestData.php index 15d2edd7d..00a54c3dd 100644 --- a/tests/InsertSummitTestData.php +++ b/tests/InsertSummitTestData.php @@ -913,12 +913,14 @@ protected static function insertSummitTestData(){ } } - $statistics = new SponsorStatistics(); - $statistics->setFormsQty(random_int(1, 30)); - $statistics->setPurchasesQty(random_int(1, 30)); - $statistics->setPagesQty(random_int(1, 30)); - $statistics->setDocumentsQty(random_int(1, 30)); - $s->setSponsorServicesStatistics($statistics); + if ($i % 2 == 0) { + $statistics = new SponsorStatistics(); + $statistics->setFormsQty(random_int(1, 30)); + $statistics->setPurchasesQty(random_int(1, 30)); + $statistics->setPagesQty(random_int(1, 30)); + $statistics->setDocumentsQty(random_int(1, 30)); + $s->setSponsorServicesStatistics($statistics); + } self::$em->persist($s); self::$summit->addSummitSponsor($s); diff --git a/tests/OAuth2SummitSponsorApiTest.php b/tests/OAuth2SummitSponsorApiTest.php index cce73bf94..50f9f3357 100644 --- a/tests/OAuth2SummitSponsorApiTest.php +++ b/tests/OAuth2SummitSponsorApiTest.php @@ -878,4 +878,33 @@ public function testUpdatePartiallySponsorServicesStatistics(){ $this->assertEquals($new_forms_qty, $statistics->forms_qty); $this->assertEquals($pages_qty, $statistics->pages_qty); } + + public function testInsertPartiallySponsorServicesStatistics(){ + $params = [ + 'id' => self::$summit->getId(), + 'sponsor_id' => self::$sponsors[1]->getId(), + ]; + + $new_forms_qty = 10; + + $data = [ + 'forms_qty' => $new_forms_qty + ]; + + $response = $this->action( + "PUT", + "OAuth2SummitSponsorApiController@updateSponsorServicesStatistics", + $params, + [], + [], + [], + $this->getAuthHeaders(), + json_encode($data) + ); + + $content = $response->getContent(); + $this->assertResponseStatus(201); + $statistics = json_decode($content); + $this->assertEquals($new_forms_qty, $statistics->forms_qty); + } }