package com.constellio.app.modules.es.connectors.smb.cache; import com.constellio.app.modules.es.connectors.http.ConnectorHttpContext; import com.constellio.app.modules.es.connectors.http.ConnectorHttpContextServices; import com.constellio.app.modules.es.connectors.smb.cache.SmbConnectorContext; import com.constellio.app.modules.es.connectors.smb.cache.SmbConnectorContextServices; import com.constellio.app.modules.es.connectors.smb.service.SmbModificationIndicator; import com.constellio.app.modules.es.services.ESSchemasRecordsServices; import com.constellio.sdk.tests.ConstellioTest; import org.junit.Before; import org.junit.Test; import static org.assertj.core.api.Assertions.assertThat; public class ConnectorSmbContextAcceptTest extends ConstellioTest { SmbConnectorContextServices services; @Before public void setUp() throws Exception { prepareSystem(withZeCollection().withConstellioESModule()); ESSchemasRecordsServices es = new ESSchemasRecordsServices(zeCollection, getAppLayerFactory()); services = new SmbConnectorContextServices(es); } @Test public void whenSaveAndLoadUrlListThenValuesConserved() throws Exception { ESSchemasRecordsServices es = new ESSchemasRecordsServices(zeCollection, getAppLayerFactory()); SmbConnectorContext context = services.createContext("zeConnector"); context.traverseModified("smb://myShare/folder/", new SmbModificationIndicator("myHash", 0D, 5), "smb://myShare/", null); context.traverseModified("smb://myShare/folder/test.html", new SmbModificationIndicator("myHash", 5D, 5), "smb://myShare/folder/", null); context.traverseModified("smb://myShare/folder/test.html", new SmbModificationIndicator("newHash", 5D, 5), "smb://myShare/folder/", null); context.traverseModified("smb://myShare/folder/subFolder/", new SmbModificationIndicator("myHash", 0D, 5), "smb://myShare/folder/", null); context.traverseModified("smb://myShare/folder/subFolder/test.html", new SmbModificationIndicator("myHash", 5D, 5), "smb://myShare/folder/subFolder/", null); services.save(context); SmbConnectorContext context2 = services.loadContext("zeConnector"); assertThat(context2.recordUrls).containsKeys( "smb://myShare/folder/", "smb://myShare/folder/test.html", "smb://myShare/folder/subFolder/", "smb://myShare/folder/subFolder/test.html" ); context.traverseModified("smb://myShare/folder/test.html", new SmbModificationIndicator("newHash", 5D, 10), "folderId", null); context.traverseUnchanged("smb://myShare/folder/test.html", "myTraversal"); context.traverseUnchanged("smb://myShare/folder/", "myTraversal"); context.traverseUnchanged("smb://myShare/folder/subFolder/", "anotherTraversal"); context.delete("smb://myShare/folder/subFolder/test.html"); services.save(context); SmbConnectorContext context3 = services.loadContext("zeConnector"); assertThat(context3.recordUrls).containsKeys( "smb://myShare/folder/", "smb://myShare/folder/test.html", "smb://myShare/folder/subFolder/" ); assertThat(context3.staleUrls("anotherTraversal")).containsExactly("smb://myShare/folder/test.html", "smb://myShare/folder/"); SmbModificationIndicator indicator = context3.getModificationIndicator("smb://myShare/folder/test.html"); assertThat(indicator.getParentId()).isEqualTo("folderId"); assertThat(indicator.getSize()).isEqualTo(5D); assertThat(indicator.getLastModified()).isEqualTo(10); assertThat(indicator.getPermissionsHash()).isEqualTo("newHash"); assertThat(indicator.getTraversalCode()).isEqualTo("myTraversal"); context.getParentId("smb://myShare/folder/test.html"); } }