public function testGivenThatTheBuilderIsUsedToConstructMultipleObjectsThenTheDataWillBeResetBetweenSubsequentCalls()
 {
     $firstCliArguments = $this->builder->withPharFile(self::VALID_PHAR_FILE)->withCommand(self::VALID_COMMAND)->withConfigurationFile(self::VALID_CONFIGURATION_FILE)->withDockerfile(self::VALID_DOCKERFILE_PATH)->build();
     $this->assertEquals(self::VALID_PHAR_FILE, $firstCliArguments->getPharFilePath());
     $this->assertEquals(self::VALID_COMMAND, $firstCliArguments->getCommand());
     $this->assertEquals(self::VALID_CONFIGURATION_FILE, $firstCliArguments->getConfigurationFile());
     $this->assertEquals(self::VALID_DOCKERFILE_PATH, $firstCliArguments->getDockerFilePath());
     $secondCliArguments = $this->builder->build();
     $this->assertNotEquals($firstCliArguments, $secondCliArguments, 'The cleanup of provisioning data inside the builder was not correct.');
 }
 public function testGivenNoSpecificOptionsThenTheBuilderWillGenerateCliArgumentsWithDefaultValues()
 {
     $argumentWrapper = $this->builder->build();
     $this->assertNotNull($argumentWrapper, 'The build method did not return anything');
     $this->assertTrue($argumentWrapper instanceof CliArguments, 'The build method should have returned a new instance of CLI arguments');
     $this->assertEquals(CliArgumentsBuilder::DEFAULT_PHAR_FILE, $argumentWrapper->getPharFilePath());
     $this->assertEquals(CliArgumentsBuilder::DEFAULT_COMMAND, $argumentWrapper->getCommand());
     $this->assertEquals(CliArgumentsBuilder::DEFAULT_CONFIGURATION_FILE, $argumentWrapper->getConfigurationFile());
     $this->assertEquals(CliArgumentsBuilder::DEFAULT_DOCKERFILE_PATH, $argumentWrapper->getDockerFilePath());
 }