package com.example.utils;
import com.example.services.Event;
import com.example.services.FileOperation;
import com.amazonaws.services.sqs.model.Message;
import org.junit.Test;
import java.io.File;
import java.nio.file.Path;
import static org.junit.Assert.*;
public class TestSQSUtils {
private Path baseDir = new File("/foo/bar").toPath();
@Test
public void testConvertMessageToEvent() {
Message message = new Message();
message.setBody("{\n" +
" \"Type\" : \"Notification\",\n" +
" \"MessageId\" : \"942c624a-5f4f-5fe4-a2d7-28e60ff48e15\",\n" +
" \"TopicArn\" : \"t\",\n" +
" \"Subject\" : \"Operation\",\n" +
" \"Message\" : \"{\\\"operation\\\":\\\"CREATE\\\",\\\"file\\\":\\\"f4\\\",\\\"originator\\\":\\\"me\\\"}\",\n" +
" \"Timestamp\" : \"2013-09-12T23:30:03.434Z\",\n" +
" \"SignatureVersion\" : \"1\",\n" +
" \"Signature\" : \"n4tdSNZBDlaOgCS2ILxbhCGq3Cl/5LlG2SAh1OKUbat3qWzgtlD5PvgjJUq/heCb5Eo0KnnDYAJbeuiw7X9HmotCtq50OiqCtz6uq6EuApy1LhiBzOhyC5S4yarmQqGV0PBZCGLrvPn/So1HiVsFoBujJZNQuw0ysQQ/ILi6TFA=\",\n" +
" \"SigningCertURL\" : \"cert\",\n" +
" \"UnsubscribeURL\" : \"foo\"\n" +
"}");
message.setReceiptHandle("receiptHandle");
message.setMessageId("messageId");
Event event = SQSUtils.convertMessageToEvent(baseDir, message);
assertEquals("operation is incorrect", FileOperation.CREATE, event.getOperation());
assertEquals("originator is correct", "me", event.getOriginator());
assertEquals("file path is correct", "/foo/bar/f4", event.getFile().toPath().toString());
assertEquals("isDirectory is correct", false, event.isDirectory());
}
@Test
public void testConvertMessageToEventIsDirPositive() {
Message message = new Message();
message.setBody("{\n" +
" \"Type\" : \"Notification\",\n" +
" \"MessageId\" : \"942c624a-5f4f-5fe4-a2d7-28e60ff48e15\",\n" +
" \"TopicArn\" : \"t\",\n" +
" \"Subject\" : \"Operation\",\n" +
" \"Message\" : \"{\\\"operation\\\":\\\"CREATE\\\",\\\"file\\\":\\\"dir/\\\",\\\"originator\\\":\\\"me\\\"}\",\n" +
" \"Timestamp\" : \"2013-09-12T23:30:03.434Z\",\n" +
" \"SignatureVersion\" : \"1\",\n" +
" \"Signature\" : \"sig/sig=\",\n" +
" \"SigningCertURL\" : \"cert\",\n" +
" \"UnsubscribeURL\" : \"foo\"\n" +
"}");
message.setReceiptHandle("receiptHandle");
message.setMessageId("messageId");
Event event = SQSUtils.convertMessageToEvent(baseDir, message);
assertEquals("operation is incorrect", FileOperation.CREATE, event.getOperation());
assertEquals("originator is correct", "me", event.getOriginator());
assertEquals("file path is correct", "/foo/bar/dir", event.getFile().toPath().toString());
assertEquals("isDirectory is correct", true, event.isDirectory());
}
@Test
public void testGetQueueName() {
String queueUrl = "https://sqs.us-east-1.amazonaws.com/1234/fooQ";
assertEquals("queueName is incorrect", "fooQ", SQSUtils.getQueueNameFromQueueUrl(queueUrl));
}
}