21 private $objectManager;
31 private $nullableMock;
41 private $resourceConnectionMock;
46 private $onUpdateMock;
51 $this->nullableMock = $this->getMockBuilder(Nullable::class)
52 ->disableOriginalConstructor()
54 $this->commentMock = $this->getMockBuilder(Comment::class)
55 ->disableOriginalConstructor()
57 $this->resourceConnectionMock = $this->getMockBuilder(ResourceConnection::class)
58 ->disableOriginalConstructor()
60 $this->onUpdateMock = $this->getMockBuilder(OnUpdate::class)
61 ->disableOriginalConstructor()
63 $this->timestamp = $this->objectManager->getObject(
66 'onUpdate' => $this->onUpdateMock,
67 'nullable' => $this->nullableMock,
68 'comment' => $this->commentMock,
69 'resourceConnection' => $this->resourceConnectionMock
82 public function testToDefinition($default, $nullable, $onUpdate, $expectedStatement)
85 $column = $this->getMockBuilder(BooleanColumn::class)
86 ->disableOriginalConstructor()
88 $column->expects($this->any())
91 $column->expects($this->any())
93 ->willReturn(
'DATETIME');
94 $column->expects($this->any())
95 ->method(
'getDefault')
96 ->willReturn($default);
97 $adapterMock = $this->getMockBuilder(\
Magento\Framework\DB\Adapter\AdapterInterface::class)
98 ->disableOriginalConstructor()
100 $this->resourceConnectionMock->expects($this->once())->method(
'getConnection')->willReturn($adapterMock);
101 $adapterMock->expects($this->once())
102 ->method(
'quoteIdentifier')
104 ->willReturn(
'`col`');
106 $this->nullableMock->expects($this->any())
107 ->method(
'toDefinition')
109 ->willReturn(
'NULL');
111 $this->nullableMock->expects($this->any())
112 ->method(
'toDefinition')
114 ->willReturn(
'NOT NULL');
116 $this->commentMock->expects($this->any())
117 ->method(
'toDefinition')
119 ->willReturn(
'COMMENT "Comment"');
121 $this->onUpdateMock->expects($this->any())
122 ->method(
'toDefinition')
124 ->willReturn(
'ON UPDATE CURRENT_TIMESTAMP');
128 $this->timestamp->toDefinition($column)
141 'onUpdate' =>
'CURRENT_TIMESTAMP',
142 'expectedStatement' =>
'`col` DATETIME NULL ON UPDATE CURRENT_TIMESTAMP COMMENT "Comment"',
147 'onUpdate' =>
'CURRENT_TIMESTAMP',
148 'expectedStatement' =>
'`col` DATETIME NULL ON UPDATE CURRENT_TIMESTAMP COMMENT "Comment"',
153 'onUpdate' =>
'CURRENT_TIMESTAMP',
154 'expectedStatement' =>
'`col` DATETIME NOT NULL ON UPDATE CURRENT_TIMESTAMP COMMENT "Comment"',
157 'default' =>
'CURRENT_TIMESTAMP',
160 'expectedStatement' =>
'`col` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT "Comment"',
163 'default' =>
'CURRENT_TIMESTAMP',
165 'onUpdate' =>
'CURRENT_TIMESTAMP',
166 'expectedStatement' =>
'`col` DATETIME NULL DEFAULT CURRENT_TIMESTAMP ' 167 .
'ON UPDATE CURRENT_TIMESTAMP COMMENT "Comment"',