### Question:
ShootOptionBuilder { public ShootOption build() { validate(); return new ShootOption(shootAttemptCount, checkLiveViewState, shootWithV0, shootWithNoAF, shootWithAF, saveTo, waitForItemDownloadEvent, busyWaitMillis, fetchEvents, folderDestination, filename); }  ShootOptionBuilder setShootAttemptCount(final int shootAttemptCount); ShootOptionBuilder setCheckLiveViewState(final boolean checkLiveViewState); ShootOptionBuilder setShootWithV0(final boolean shootWithV0); ShootOptionBuilder setShootWithNoAF(final boolean shootWithNoAF); ShootOptionBuilder setShootWithAF(final boolean shootWithAF); ShootOptionBuilder setSaveTo(final EdsSaveTo saveTo); ShootOptionBuilder setWaitForItemDownloadEvent(final boolean waitForItemDownloadEvent); ShootOptionBuilder setBusyWaitMillis(final long busyWaitMillis); ShootOptionBuilder setFetchEvents(final boolean fetchEvents); ShootOptionBuilder setFolderDestination(final File folderDestination); ShootOptionBuilder setFilename(final String filename); ShootOption build();  }### Answer:
@Test void defaultBuilderIsValid() { final ShootOption shootOption = builder.build(); Assertions.assertNotNull(shootOption); }
@Test void defaultValuesAreUnChanged() { final ShootOption shootOption = builder.build(); Assertions.assertEquals(5, shootOption.getShootAttemptCount()); Assertions.assertEquals(200, shootOption.getBusyWaitMillis()); Assertions.assertFalse(shootOption.isCheckLiveViewState()); Assertions.assertTrue(shootOption.isFetchEvents()); Assertions.assertTrue(shootOption.isShootWithAF()); Assertions.assertTrue(shootOption.isShootWithNoAF()); Assertions.assertTrue(shootOption.isShootWithV0()); Assertions.assertTrue(shootOption.isWaitForItemDownloadEvent()); Assertions.assertFalse(shootOption.getFilename().isPresent()); Assertions.assertFalse(shootOption.getFolderDestination().isPresent()); Assertions.assertTrue(shootOption.getSaveTo().isPresent()); Assertions.assertEquals(EdsSaveTo.kEdsSaveTo_Both, shootOption.getSaveTo().get()); }
@Test void builderIsReusable() { final ShootOption shootOption = builder.build(); final ShootOption shootOption2 = builder.build(); Assertions.assertNotNull(shootOption); Assertions.assertNotNull(shootOption2); Assertions.assertNotSame(shootOption, shootOption2); Assertions.assertEquals(shootOption, shootOption2); Assertions.assertEquals(shootOption.hashCode(), shootOption2.hashCode()); }
@Test void toStringOk() { final ShootOption option = builder.build(); Assertions.assertNotNull(option.toString()); }