package com.example.services;
import com.example.config.Config;
import com.example.services.impl.S3FileEvent;
import com.example.utils.TestingUtils;
import org.junit.Test;
import java.io.File;
import static org.junit.Assert.*;
public class TestS3FileEvent {
private Config config = TestingUtils.getMockConfig();
@Test
public void testConstructor() {
File f = new File("/path/to/a/file");
S3FileEvent fileEvent = new S3FileEvent(FileOperation.CREATE, f, "me");
assertEquals("incorrect operation", FileOperation.CREATE, fileEvent.getOperation());
assertEquals("incorrect file", "/path/to/a/file", fileEvent.getFile().getPath());
assertEquals("incorrect originator", "me", fileEvent.getOriginator());
assertEquals("incorrect isDir", false, fileEvent.isDirectory());
fileEvent = new S3FileEvent(FileOperation.CREATE, f, "me", true);
assertEquals("incorrect isDir", true, fileEvent.isDirectory());
}
@Test
public void testToJson() {
File f = new File("/foo/bar/to/a/file");
S3FileEvent fileEvent = new S3FileEvent(FileOperation.CREATE, f, "me");
assertEquals("toString does not match", "{\"operation\":\"CREATE\",\"file\":\"to/a/file\",\"originator\":\"me\"}", fileEvent.toJson(config.getBaseDir()));
}
@Test
public void testEqualPositive() {
File f = new File("/path/to/a/file");
S3FileEvent e1 = new S3FileEvent(FileOperation.CREATE, f, "me");
S3FileEvent e2 = new S3FileEvent(FileOperation.CREATE, f, "me");
assertTrue("hascode should match", e1.hashCode() == e2.hashCode());
assertTrue("should be equal", e1.equals(e2));
}
@Test
public void testEqualNegative() {
File f1 = new File("/path/to/a/file");
File f2 = new File("/path/to/a/differentFile");
S3FileEvent e1 = new S3FileEvent(FileOperation.CREATE, f1, "me");
S3FileEvent e2 = new S3FileEvent(FileOperation.CREATE, f2, "me");
assertFalse("hascode should not match", e1.hashCode() == e2.hashCode());
assertFalse("should not be equal", e1.equals(e2));
}
}