package com.psddev.cms.tool.file;
import java.util.List;
import java.util.Map;
import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.mockito.Mock;
import org.mockito.Spy;
import org.mockito.runners.MockitoJUnitRunner;
import com.psddev.dari.util.AbstractStorageItem;
import com.psddev.dari.util.StorageItemUploadPart;
import static org.junit.Assert.assertEquals;
import static org.mockito.Mockito.when;
@RunWith(MockitoJUnitRunner.class)
public class MetadataBeforeSaveTest {
@Mock
StorageItemUploadPart part;
@Spy
AbstractStorageItem item;
@Before
public void before() {
item.setMetadata(null);
}
@Test
public void verifyOriginalFileName() {
String originalFilename = "test";
when(part.getName()).thenReturn(originalFilename);
new MetadataBeforeSave().beforeSave(item, part);
assertEquals(item.getMetadata().get("originalFilename"), originalFilename);
}
@Test
public void verifyHttpHeaders() {
long fileSize = 100;
String fileContentType = "image/jpeg";
when(part.getSize()).thenReturn(fileSize);
when(part.getContentType()).thenReturn(fileContentType);
new MetadataBeforeSave().beforeSave(item, part);
Map<String, Object> httpHeaders = (Map<String, Object>) item.getMetadata().get("http.headers");
assertEquals(((List<String>) httpHeaders.get("Cache-Control")).get(0), "public, max-age=31536000");
assertEquals(((List<String>) httpHeaders.get("Content-Length")).get(0), String.valueOf(fileSize));
assertEquals(((List<String>) httpHeaders.get("Content-Type")).get(0), fileContentType);
}
}