### Question:
CanonLibraryImpl implements CanonLibrary { protected Optional<String> getLibPath() { final String jnaPath = System.getProperty(LIBRARY_PATH_PROPERTY); if (jnaPath != null) { return Optional.of(jnaPath); } switch (archLibraryToUse) { case AUTO: if (Platform.is64Bit()) { log.info("Dll auto selected to 64 bit"); return Optional.of(DllUtil.DEFAULT_LIB_64_PATH); } log.info("Dll auto selected to 32 bit"); return Optional.of(DllUtil.DEFAULT_LIB_32_PATH); case FORCE_32: log.info("Dll forced to 32 bit"); return Optional.of(DllUtil.DEFAULT_LIB_32_PATH); case FORCE_64: log.info("Dll forced to 64 bit"); return Optional.of(DllUtil.DEFAULT_LIB_64_PATH); default: throw new IllegalStateException("Enum unknown: " + archLibraryToUse); } } CanonLibraryImpl(); @Override EdsdkLibrary edsdkLibrary(); @Override ArchLibrary getArchLibraryToUse(); @Override void setArchLibraryToUse(final ArchLibrary archLibraryToUse);  }### Answer:
@Test void getLibPath() { final CanonLibraryImpl canonLibrary = (CanonLibraryImpl) CanonFactory.canonLibrary(); if (Platform.is64Bit()) { Assertions.assertEquals(DllUtil.DEFAULT_LIB_64_PATH, canonLibrary.getLibPath().get()); } canonLibrary.setArchLibraryToUse(CanonLibrary.ArchLibrary.FORCE_32); Assertions.assertEquals(DllUtil.DEFAULT_LIB_32_PATH, canonLibrary.getLibPath().get()); canonLibrary.setArchLibraryToUse(CanonLibrary.ArchLibrary.FORCE_64); Assertions.assertEquals(DllUtil.DEFAULT_LIB_64_PATH, canonLibrary.getLibPath().get()); System.setProperty("blackdread.cameraframework.library.path", "test"); Assertions.assertEquals("test", canonLibrary.getLibPath().get()); }