SwiftypeCredentialsTest::testFullCredentials()   A
last analyzed

Complexity

Conditions 1
Paths 1

Size

Total Lines 15
Code Lines 8

Duplication

Lines 0
Ratio 0 %

Importance

Changes 1
Bugs 0 Features 0
Metric Value
cc 1
eloc 8
c 1
b 0
f 0
nc 1
nop 0
dl 0
loc 15
rs 10
1
<?php
2
3
namespace Ichaber\SSSwiftype\Tests\Service;
4
5
use Ichaber\SSSwiftype\Service\SwiftypeCredentials;
6
use Ichaber\SSSwiftype\Extensions\SwiftypeSiteConfigFieldsExtension;
7
use SilverStripe\Dev\SapphireTest;
8
use SilverStripe\ORM\ValidationException;
9
use SilverStripe\SiteConfig\SiteConfig;
10
11
/**
12
 * Class SwiftypeCredentialsTest
13
 *
14
 * @package Ichaber\SSSwiftype\Tests\Service
15
 */
16
class SwiftypeCredentialsTest extends SapphireTest
17
{
18
    /**
19
     * @var bool
20
     */
21
    protected $usesDatabase = true;
22
23
    /**
24
     * @var array
25
     */
26
    protected static $required_extensions = [
27
        SiteConfig::class => [
28
            SwiftypeSiteConfigFieldsExtension::class,
29
        ],
30
    ];
31
32
    /**
33
     * @throws ValidationException
34
     */
35
    public function testFullCredentials(): void
36
    {
37
        /** @var SiteConfig|SwiftypeSiteConfigFieldsExtension $config */
38
        $config = SiteConfig::current_site_config();
39
40
        $config->SwiftypeEnabled = 1;
41
        $config->SwiftypeEngineSlug = 'test';
42
        $config->SwiftypeDomainID = 'test';
43
        $config->SwiftypeAPIKey = 'test';
44
45
        $config->write();
46
47
        $credentials = SwiftypeCredentials::create();
48
49
        $this->assertTrue($credentials->isEnabled());
50
    }
51
52
    /**
53
     * @throws ValidationException
54
     */
55
    public function testNoEngineSlug(): void
56
    {
57
        /** @var SiteConfig|SwiftypeSiteConfigFieldsExtension $config */
58
        $config = SiteConfig::current_site_config();
59
60
        $config->SwiftypeEnabled = 1;
61
        $config->SwiftypeEngineSlug = null;
62
        $config->SwiftypeDomainID = 'test';
63
        $config->SwiftypeAPIKey = 'test';
64
65
        $config->write();
66
67
        $credentials = SwiftypeCredentials::create();
68
69
        $this->assertFalse($credentials->isEnabled());
70
        $this->assertContains('Swiftype Engine Slug value has not been set', $credentials->getMessage());
71
    }
72
73
    /**
74
     * @throws ValidationException
75
     */
76
    public function testNoDomainID(): void
77
    {
78
        /** @var SiteConfig|SwiftypeSiteConfigFieldsExtension $config */
79
        $config = SiteConfig::current_site_config();
80
81
        $config->SwiftypeEnabled = 1;
82
        $config->SwiftypeEngineSlug = 'test';
83
        $config->SwiftypeDomainID = null;
84
        $config->SwiftypeAPIKey = 'test';
85
86
        $config->write();
87
88
        $credentials = SwiftypeCredentials::create();
89
90
        $this->assertFalse($credentials->isEnabled());
91
        $this->assertContains('Swiftype Domain ID has not been set', $credentials->getMessage());
92
    }
93
94
    /**
95
     * @throws ValidationException
96
     */
97
    public function testNoApiKey(): void
98
    {
99
        /** @var SiteConfig|SwiftypeSiteConfigFieldsExtension $config */
100
        $config = SiteConfig::current_site_config();
101
102
        $config->SwiftypeEnabled = 1;
103
        $config->SwiftypeEngineSlug = 'test';
104
        $config->SwiftypeDomainID = 'test';
105
        $config->SwiftypeAPIKey = null;
106
107
        $config->write();
108
109
        $credentials = SwiftypeCredentials::create();
110
111
        $this->assertFalse($credentials->isEnabled());
112
        $this->assertContains('Swiftype API Key has not been set', $credentials->getMessage());
113
    }
114
}
115