->method('getName')
->willReturn(\str_repeat('a', 30));
+ $primaryKey = $this->createMock(Index::class);
+
$table->expects($this->once())
->method('getColumns')
->willReturn([$column]);
->willReturn([$foreignKey]);
$table->expects($this->once())
->method('getPrimaryKey')
- ->willReturn(null);
+ ->willReturn($primaryKey);
$schema = $this->createMock(Schema::class);
$schema->expects($this->once())
}
+ public function testEnsureOracleConstraintsNoPrimaryKey() {
+ $this->expectException(\InvalidArgumentException::class);
+
+ $table = $this->createMock(Table::class);
+ $table->expects($this->atLeastOnce())
+ ->method('getName')
+ ->willReturn(\str_repeat('a', 30));
+ $table->expects($this->once())
+ ->method('getColumns')
+ ->willReturn([]);
+ $table->expects($this->once())
+ ->method('getIndexes')
+ ->willReturn([]);
+ $table->expects($this->once())
+ ->method('getForeignKeys')
+ ->willReturn([]);
+ $table->expects($this->once())
+ ->method('getPrimaryKey')
+ ->willReturn(null);
+
+ $schema = $this->createMock(Schema::class);
+ $schema->expects($this->once())
+ ->method('getTables')
+ ->willReturn([$table]);
+ $schema->expects($this->once())
+ ->method('getSequences')
+ ->willReturn([]);
+
+ $sourceSchema = $this->createMock(Schema::class);
+ $sourceSchema->expects($this->any())
+ ->method('getTable')
+ ->willThrowException(new SchemaException());
+ $sourceSchema->expects($this->any())
+ ->method('hasSequence')
+ ->willReturn(false);
+
+ self::invokePrivate($this->migrationService, 'ensureOracleConstraints', [$sourceSchema, $schema, 3]);
+ }
+
+
public function testEnsureOracleConstraintsTooLongSequenceName() {
$this->expectException(\InvalidArgumentException::class);