package com.example.services;
import com.example.config.Config;
import com.example.mocks.MockFileManager;
import com.example.services.impl.S3FileEvent;
import com.example.services.impl.S3Receiver;
import com.example.utils.TestingUtils;
import org.junit.Test;
import java.io.File;
import static org.junit.Assert.*;
public class TestS3Receiver {
private MockFileManager fileManager = new MockFileManager();
private Config config = TestingUtils.getMockConfig();
S3Receiver receiver = new S3Receiver(config, fileManager);
@Test
public void testReceiveFileCreate() {
Event event = new S3FileEvent(FileOperation.CREATE, new File("/foo/bar"), "me");
receiver.receive(event);
assertEquals("File is downloaded locally", 1, fileManager.downloaded.size());
}
@Test
public void testReceiveFileDelete() {
Event event = new S3FileEvent(FileOperation.DELETE, new File("/foo/bar"), "me");
receiver.receive(event);
assertEquals("File is downloaded locally", 1, fileManager.deletedLocalFiles.size());
}
@Test
public void testReceiveDirectoryCreate() {
Event event = new S3FileEvent(FileOperation.CREATE, new File("/foo/bar"), "me", true);
receiver.receive(event);
assertEquals("Folder is not created locally", 0, fileManager.downloaded.size());
}
@Test
public void testReceiveToSelf() {
Event event = new S3FileEvent(FileOperation.CREATE, new File("/foo/bar"), config.getQueueName(), true);
receiver.receive(event);
assertEquals("Directory should not be created", 0, fileManager.createDirectories.size());
}
}