19 private $clearingDecisionFilter;
21 protected function setUp() :
void
26 protected function tearDown() :
void
31 public function testFilterCurrentClearingDecisions()
35 $decision1 = M::mock(ClearingDecision::class);
36 $decision1->shouldReceive(
"getType")->atLeast()->once()->withNoArgs()->andReturn(DecisionTypes::IDENTIFIED);
37 $decision1->shouldReceive(
"getScope")->atLeast()->once()->withNoArgs()->andReturn(DecisionScopes::REPO);
38 $decision1->shouldReceive(
"getUploadTreeId")->andReturn($itemId);
39 $decision1->shouldReceive(
"getPfileId")->andReturn($pfileId);
40 $decision2 = M::mock(ClearingDecision::class);
41 $decision2->shouldReceive(
"getType")->atLeast()->once()->withNoArgs()->andReturn(DecisionTypes::IDENTIFIED);
42 $decision2->shouldReceive(
"getScope")->atLeast()->once()->withNoArgs()->andReturn(DecisionScopes::ITEM);
43 $decision2->shouldReceive(
"getUploadTreeId")->andReturn($itemId+1);
44 $decision2->shouldReceive(
"getPfileId")->andReturn($pfileId);
45 $decisionIrrel = M::mock(ClearingDecision::class);
46 $decisionIrrel->shouldReceive(
"getType")->atLeast()->once()->withNoArgs()->andReturn(DecisionTypes::IRRELEVANT);
48 $filteredClearingDecisions = $this->clearingDecisionFilter->filterCurrentClearingDecisions(array($decision1, $decisionIrrel, $decision2));
50 assertThat($this->clearingDecisionFilter->getDecisionOf($filteredClearingDecisions, $itemId, $pfileId), is(sameInstance($decision1)));
51 assertThat($this->clearingDecisionFilter->getDecisionOf($filteredClearingDecisions, $itemId+1, $pfileId), is(sameInstance($decision2)));
52 assertThat($this->clearingDecisionFilter->getDecisionOf($filteredClearingDecisions, $itemId+2, $pfileId), is(sameInstance($decision1)));
56 public function testCreateClearingResultCreationFailsOfNoEventsWereFound()
58 $this->expectException(\InvalidArgumentException::class);
59 $this->expectExceptionMessage(
"unhandled clearing decision scope '12345'");
62 $decision = M::mock(ClearingDecision::class);
63 $decision->shouldReceive(
"getType")->atLeast()->once()->withNoArgs()->andReturn(DecisionTypes::IDENTIFIED);
64 $decision->shouldReceive(
"getScope")->atLeast()->once()->withNoArgs()->andReturn(12345);
65 $decision->shouldReceive(
"getUploadTreeId")->andReturn($itemId);
66 $decision->shouldReceive(
"getPfileId")->andReturn($pfileId);
68 $this->clearingDecisionFilter->filterCurrentClearingDecisions(array($decision));
71 public function testFilterCurrentReusableClearingDecisions()
75 $decision1 = M::mock(ClearingDecision::class);
76 $decision1->shouldReceive(
"getUploadTreeId")->andReturn($itemId);
77 $decision2 = M::mock(ClearingDecision::class);
78 $decision2->shouldReceive(
"getUploadTreeId")->andReturn($itemId2);
80 $filteredClearingDecisions = $this->clearingDecisionFilter->filterCurrentReusableClearingDecisions(array($decision1, $decision2));
81 $expecedArray = array($itemId => $decision1, $itemId2 => $decision2 );
83 assertThat($filteredClearingDecisions, containsInAnyOrder($expecedArray));
Various utility functions to filter ClearingDecision.
Contains business rules for FOSSology.