Any thoughts on refactoring?
Dec 4, 2016
9
Level 54
Testing An Obese Test
Critique but let me know what can I do to refactor this large test.
function user_can_view_a_published_event_listing()
{
$venue = factory(Venue::class)->create([
'name' => 'The Cool Venue',
'address' => '123 Example Lane',
'city' => 'Laraville',
'state' => 'FL',
'zip' => '12345',
]);
$event = factory(Event::class)->states('published')->create([
'title' => 'Example Event',
'date' => Carbon::parse('December 2, 2016 8:00pm'),
'venue_id' => $venue->id,
'preview' => 'Just a preview for the event.',
]);
$matchTypeOne = factory(MatchType::class)->create([
'name' => 'Singles'
]);
$matchTypeTwo = factory(MatchType::class)->create([
'name' => 'Triple Threat'
]);
$matchTypeThree = factory(MatchType::class)->create([
'name' => 'Tag Team'
]);
$matchTypeFour = factory(MatchType::class)->create([
'name' => 'Four Corners'
]);
$stipulationOne = factory(MatchStipulation::class)->create([
'name' => 'I Quit'
]);
$titleOne = factory(Title::class)->create([
'name' => 'World Tag Team Titles'
]);
$matchOne = factory(Match::class)->create([
'event_id' => $event->id,
'match_number' => 1,
'type_id' => $matchTypeOne->id,
'stipulation_id' => $stipulationOne->id
]);
$matchTwo = factory(Match::class)->create([
'event_id' => $event->id,
'match_number' => 2,
'type_id' => $matchTypeTwo->id,
]);
$matchThree = factory(Match::class)->create([
'event_id' => $event->id,
'match_number' => 3,
'type_id' => $matchTypeThree->id,
'title_id' => $titleOne->id
]);
$matchFour = factory(Match::class)->create([
'event_id' => $event->id,
'match_number' => 4,
'type_id' => $matchTypeFour->id,
]);
$wrestler1 = factory(RosterMember::class)->create([
'name' => 'Wrestler 1'
]);
$wrestler2 = factory(RosterMember::class)->create([
'name' => 'Wrestler 2'
]);
$wrestler3 = factory(RosterMember::class)->create([
'name' => 'Wrestler 3'
]);
$wrestler4 = factory(RosterMember::class)->create([
'name' => 'Wrestler 4'
]);
$wrestler5 = factory(RosterMember::class)->create([
'name' => 'Wrestler 5'
]);
$wrestler6 = factory(RosterMember::class)->create([
'name' => 'Wrestler 6'
]);
$wrestler7 = factory(RosterMember::class)->create([
'name' => 'Wrestler 7'
]);
$wrestler8 = factory(RosterMember::class)->create([
'name' => 'Wrestler 8'
]);
$wrestler9 = factory(RosterMember::class)->create([
'name' => 'Wrestler 9'
]);
$tagteam1 = factory(RosterMember::class)->create([
'name' => 'Tag Team 1'
]);
$tagteam2 = factory(RosterMember::class)->create([
'name' => 'Tag Team 2'
]);
$this->assertEquals($event->venue_id, $venue->id);
$this->assertEquals($matchOne->type_id, $matchTypeOne->id);
$this->assertEquals($matchTwo->type_id, $matchTypeTwo->id);
$this->assertEquals($matchThree->type_id, $matchTypeThree->id);
$this->assertEquals($matchFour->type_id, $matchTypeFour->id);
$matchOne = $event->matches()->save($matchOne);
$matchTwo = $event->matches()->save($matchTwo);
$matchThree = $event->matches()->save($matchThree);
$matchFour = $event->matches()->save($matchFour);
$matchOne->competitors()->save($wrestler1);
$matchOne->competitors()->save($wrestler2);
$matchTwo->competitors()->save($wrestler3);
$matchTwo->competitors()->save($wrestler4);
$matchTwo->competitors()->save($wrestler5);
$matchThree->competitors()->save($tagteam1);
$matchThree->competitors()->save($tagteam2);
$matchFour->competitors()->save($wrestler6);
$matchFour->competitors()->save($wrestler7);
$matchFour->competitors()->save($wrestler8);
$matchFour->competitors()->save($wrestler9);
$this->visit('/events/'.$event->id);
$this->see('Example Event');
$this->see('December 2, 2016');
$this->see('8:00pm');
$this->see('The Cool Venue');
$this->see('123 Example Lane');
$this->see('Laraville, FL 12345');
$this->see('Just a preview for the event.');
$this->see('Opening Match');
$this->see('Singles Match');
$this->see('Wrestler 1 vs. Wrestler 2');
$this->see('Match #2');
$this->see('Triple Threat Match');
$this->see('Wrestler 3 vs. Wrestler 4 vs. Wrestler 5');
$this->see('Match #3');
$this->see('Tag Team Match');
$this->see('World Tag Team Titles Match');
$this->see('Tag Team 1 vs. Tag Team 2');
$this->see('Main Event');
$this->see('Four Corners Match');
$this->see('Wrestler 6 vs. Wrestler 7 vs. Wrestler 8 vs. Wrestler 9');
}
Please or to participate in this conversation.