content: package ru.yandex.qatools.allure.utils;
  
  import org.apache.commons.io.IOUtils;
  import org.junit.Before;
  import org.junit.Rule;
  import org.junit.Test;
  import org.junit.rules.TemporaryFolder;
  import org.junit.runner.RunWith;
  import org.junit.runners.Parameterized;
  import ru.yandex.qatools.allure.model.Attachment;
  
  import java.io.File;
  import java.io.IOException;
  import java.io.InputStream;
  import java.util.Arrays;
  import java.util.Collection;
  
  import static org.hamcrest.core.Is.is;
  import static org.junit.Assert.assertThat;
  import static ru.yandex.qatools.allure.utils.DirectoryMatcher.contains;
  
  /**
   * @author Dmitry Baev charlie@yandex-team.ru
   *         Date: 21.05.14
   */
  @RunWith(Parameterized.class)
  public class WriteAttachmentTest {
  
      private static final String TITLE = "some.title";
  
      @Rule
      public TemporaryFolder folder = new TemporaryFolder();
  
      private File resultsDirectory;
  
      private String type;
  
      private byte[] bytes;
  
      public WriteAttachmentTest(String resourceName, String type) throws IOException {
          InputStream is = getClass().getClassLoader().getResourceAsStream(resourceName);
          this.bytes = IOUtils.toByteArray(is);
          this.type = type;
      }
  
      @Parameterized.Parameters
      public static Collection<Object[]> data() {
          return Arrays.asList(
                  new Object[]{"a.html", "text/html"},
                  new Object[]{"a.jpeg", "image/jpeg"},
                  //JSON doesn't have metadata about content type in first bytes
                  new Object[]{"a.json", "text/plain"},
                  new Object[]{"a.png", "image/png"},
                  new Object[]{"a.txt", "text/plain"},
                  new Object[]{"a.xml", "application/xml"}
          );
      }
  
      @Before
      public void setUp() throws Exception {
          resultsDirectory = folder.newFolder();
          AllureResultsUtils.setResultsDirectory(resultsDirectory);
      }
  
      @Test
      public void typeTest() throws Exception {
          Attachment attachment = AllureResultsUtils.writeAttachment(bytes, TITLE);
          assertThat(attachment.getTitle(), is(TITLE));
          assertThat(resultsDirectory, contains(attachment.getSource()));
          assertThat(attachment.getType(), is(type));
      }
  }
  