Skip to content

Commit

Permalink
Tests: Cover PBS doesn't resend a report when del stats responses wit…
Browse files Browse the repository at this point in the history
…h 409 (prebid#1826)
  • Loading branch information
hupaloo authored May 3, 2022
1 parent 53bda0d commit 8ecf100
Showing 1 changed file with 36 additions and 0 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,7 @@ import java.time.ZonedDateTime
import java.time.format.DateTimeFormatter

import static java.time.ZoneOffset.UTC
import static org.mockserver.model.HttpStatusCode.CONFLICT_409
import static org.mockserver.model.HttpStatusCode.INTERNAL_SERVER_ERROR_500
import static org.mockserver.model.HttpStatusCode.OK_200
import static org.prebid.server.functional.model.deals.lineitem.LineItem.TIME_PATTERN
Expand Down Expand Up @@ -443,6 +444,41 @@ class ReportSpec extends BasePgSpec {
PBSUtils.waitUntil { deliveryStatistics.requestCount == initialRequestCount + 2 }
}

def "PBS shouldn't save reports for later sending when Delivery Statistics response is Conflict 409"() {
given: "Bid request"
def bidRequest = BidRequest.defaultBidRequest
def accountId = bidRequest.site.publisher.id

and: "Initial Delivery Statistics Service request count"
def initialRequestCount = deliveryStatistics.requestCount

and: "Set Planner response to return 1 line item"
def plansResponse = PlansResponse.getDefaultPlansResponse(accountId)
generalPlanner.initPlansResponse(plansResponse)

and: "PBS requests Planner line items"
updateLineItemsAndWait()

and: "PBS generates delivery report batch"
pgPbsService.sendForceDealsUpdateRequest(ForceDealsUpdateRequest.createReportRequest)

and: "Delivery Statistics Service response is set to return a Conflict status code"
deliveryStatistics.reset()
deliveryStatistics.setResponse(CONFLICT_409)

when: "PBS is requested to send a report to Delivery Statistics"
pgPbsService.sendForceDealsUpdateRequest(ForceDealsUpdateRequest.sendReportRequest)

then: "PBS sends a report to Delivery Statistics"
PBSUtils.waitUntil { deliveryStatistics.requestCount == initialRequestCount + 1 }

and: "PBS is requested to send a report to Delivery Statistics for the second time"
pgPbsService.sendForceDealsUpdateRequest(ForceDealsUpdateRequest.sendReportRequest)

then: "PBS doesn't request Delivery Statistics Service for the second time"
assert deliveryStatistics.requestCount == initialRequestCount + 1
}

def "PBS should change active delivery plan when the current plan lifetime expires"() {
given: "Bid request"
def bidRequest = BidRequest.defaultBidRequest
Expand Down

0 comments on commit 8ecf100

Please sign in to comment.