Completed
Push — campaignadmin-error-check ( ad9c82 )
by Sam
10:29
created

DBStringTest::testDefault()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 11
Code Lines 7

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
cc 1
eloc 7
c 0
b 0
f 0
nc 1
nop 0
dl 0
loc 11
rs 9.4285
1
<?php
2
3
4
use SilverStripe\Core\Object;
5
use SilverStripe\ORM\FieldType\DBField;
6
use SilverStripe\ORM\FieldType\DBString;
7
use SilverStripe\Dev\SapphireTest;
8
use SilverStripe\Dev\TestOnly;
9
10
11
12
/**
13
 * @package framework
14
 * @subpackage tests
15
 */
16
17
class DBStringTest extends SapphireTest {
18
19
	/**
20
	 * @covers SilverStripe\Model\FieldType\DBField::forTemplate()
21
	 */
22
	public function testForTemplate() {
23
		$this->assertEquals(
24
			"this is<br />\na test!",
25
			DBField::create_field('StringFieldTest_MyStringField', "this is\na test!")->forTemplate()
26
		);
27
	}
28
29
	public function testDefault() {
30
		/** @var DBString $dbField */
31
		$dbField = Object::create_from_string(
32
			"StringFieldTest_MyStringField(['default' => 'Here is my default text'])",
33
			'Myfield'
34
		);
35
		$this->assertEquals(
36
			"Here is my default text",
37
			$dbField->getDefaultValue()
38
		);
39
	}
40
41
	/**
42
	 * @covers SilverStripe\Model\FieldType\DBString::LowerCase()
43
	 */
44
	public function testLowerCase() {
45
		$this->assertEquals(
46
			'this is a test!',
47
			DBField::create_field('StringFieldTest_MyStringField', 'This is a TEST!')->LowerCase()
48
		);
49
	}
50
51
	/**
52
	 * @covers SilverStripe\Model\FieldType\DBString::UpperCase()
53
	 */
54
	public function testUpperCase() {
55
		$this->assertEquals(
56
			'THIS IS A TEST!',
57
			DBField::create_field('StringFieldTest_MyStringField', 'This is a TEST!')->UpperCase()
58
		);
59
	}
60
61
	public function testExists() {
62
		// True exists
63
		$this->assertTrue(DBField::create_field('StringFieldTest_MyStringField', true)->exists());
64
		$this->assertTrue(DBField::create_field('StringFieldTest_MyStringField', '0')->exists());
65
		$this->assertTrue(DBField::create_field('StringFieldTest_MyStringField', '1')->exists());
66
		$this->assertTrue(DBField::create_field('StringFieldTest_MyStringField', 1)->exists());
67
		$this->assertTrue(DBField::create_field('StringFieldTest_MyStringField', 1.1)->exists());
68
69
		// false exists
70
		$this->assertFalse(DBField::create_field('StringFieldTest_MyStringField', false)->exists());
71
		$this->assertFalse(DBField::create_field('StringFieldTest_MyStringField', '')->exists());
72
		$this->assertFalse(DBField::create_field('StringFieldTest_MyStringField', null)->exists());
73
		$this->assertFalse(DBField::create_field('StringFieldTest_MyStringField', 0)->exists());
74
		$this->assertFalse(DBField::create_field('StringFieldTest_MyStringField', 0.0)->exists());
75
	}
76
77
}
78
79
class StringFieldTest_MyStringField extends DBString implements TestOnly {
80
	public function requireField() {}
81
}
82