Code Duplication    Length = 75-75 lines in 2 locations

tests/unit/Format/Formatter/FormatterFactoryTest.php 1 location

@@ 27-101 (lines=75) @@
24
use InvalidArgumentException;
25
use Mockery as m;
26
27
class FormatterFactoryTest extends TestCase
28
{
29
    /**
30
     * @var FormatterFactory
31
     */
32
    private $factory;
33
34
    public function setUp()
35
    {
36
        $this->factory = new FormatterFactory();
37
    }
38
39
    public function testInstanceOf()
40
    {
41
        static::assertInstanceOf(FormatterFactoryInterface::class, $this->factory);
42
    }
43
44
    public function testCsvFormatter()
45
    {
46
        $csvFormat = m::mock(CsvFormat::class)->makePartial();
47
48
        $formatter = $this->factory->getFormatter($csvFormat);
49
50
        static::assertInstanceOf(CsvFormatter::class, $formatter);
51
    }
52
53
    public function testACsvFormatPretendingToBeCsvWillThrowAnException()
54
    {
55
        $csvFormat = m::mock(FormatInterface::class);
56
        $csvFormat->shouldReceive('getType')
57
                  ->andReturn('csv');
58
59
        static::expectException(InvalidArgumentException::class);
60
61
        $this->factory->getFormatter($csvFormat);
62
    }
63
64
    public function testJsonFormatter()
65
    {
66
        $jsonFormat = m::mock(JsonFormat::class);
67
        $jsonFormat->shouldReceive('getType')
68
                   ->andReturn('json');
69
        $jsonFormat->shouldReceive('isSingleBlock')
70
                   ->andReturn(false);
71
        $jsonFormat->shouldReceive('getJsonEncodeOptions')
72
                   ->andReturn(0);
73
        $jsonFormat->shouldReceive('isEachLine')
74
                   ->andReturn(true);
75
        $formatter = $this->factory->getFormatter($jsonFormat);
76
77
        static::assertInstanceOf(JsonFormatter::class, $formatter);
78
    }
79
80
    public function testAJsonFormatPretendingToBeCsvWillThrowAnException()
81
    {
82
        $csvFormat = m::mock(FormatInterface::class);
83
        $csvFormat->shouldReceive('getType')
84
                  ->andReturn('json');
85
86
        static::expectException(InvalidArgumentException::class);
87
88
        $this->factory->getFormatter($csvFormat);
89
    }
90
91
    public function testGetFormatterWithUnknownTypeWillThrowException()
92
    {
93
        $format = m::mock(FormatInterface::class);
94
        $format->shouldReceive('getType')
95
               ->andReturn('random');
96
97
        static::expectException(InvalidArgumentException::class);
98
99
        $this->factory->getFormatter($format);
100
    }
101
}
102

tests/unit/Format/Parser/ParserFactoryTest.php 1 location

@@ 29-103 (lines=75) @@
26
use InvalidArgumentException;
27
use Mockery as m;
28
29
class ParserFactoryTest extends TestCase
30
{
31
    /**
32
     * @var ParserFactory
33
     */
34
    private $factory;
35
36
    public function setUp()
37
    {
38
        $this->factory = new ParserFactory();
39
    }
40
41
    public function testInstanceOf()
42
    {
43
        static::assertInstanceOf(ParserFactoryInterface::class, $this->factory);
44
    }
45
46
    public function testCsvParser()
47
    {
48
        $csvFormat = m::mock(CsvFormat::class)->makePartial();
49
50
        $formatter = $this->factory->getParser($csvFormat);
51
52
        static::assertInstanceOf(CsvParser::class, $formatter);
53
    }
54
55
    public function testACsvFormatPretendingToBeCsvWillThrowAnException()
56
    {
57
        $csvFormat = m::mock(FormatInterface::class);
58
        $csvFormat->shouldReceive('getType')
59
                  ->andReturn('csv');
60
61
        static::expectException(InvalidArgumentException::class);
62
63
        $this->factory->getParser($csvFormat);
64
    }
65
66
    public function testJsonParser()
67
    {
68
        $jsonFormat = m::mock(JsonFormat::class);
69
        $jsonFormat->shouldReceive('getType')
70
                   ->andReturn('json');
71
        $jsonFormat->shouldReceive('isSingleBlock')
72
                   ->andReturn(false);
73
        $jsonFormat->shouldReceive('getJsonEncodeOptions')
74
                   ->andReturn(0);
75
        $jsonFormat->shouldReceive('isEachLine')
76
                   ->andReturn(true);
77
        $formatter = $this->factory->getParser($jsonFormat);
78
79
        static::assertInstanceOf(JsonParser::class, $formatter);
80
    }
81
82
    public function testAJsonFormatPretendingToBeCsvWillThrowAnException()
83
    {
84
        $csvFormat = m::mock(FormatInterface::class);
85
        $csvFormat->shouldReceive('getType')
86
                  ->andReturn('json');
87
88
        static::expectException(InvalidArgumentException::class);
89
90
        $this->factory->getParser($csvFormat);
91
    }
92
93
    public function testGetFormatterWithUnknownTypeWillThrowException()
94
    {
95
        $format = m::mock(FormatInterface::class);
96
        $format->shouldReceive('getType')
97
               ->andReturn('random');
98
99
        static::expectException(InvalidArgumentException::class);
100
101
        $this->factory->getParser($format);
102
    }
103
}
104