1. Project Clover database Tue Dec 20 2016 21:24:09 CET
  2. Package org.xwiki.store.serialization.xml.internal

File AttachmentMetadataSerializerTest.java

 

Code metrics

0
17
3
1
91
55
3
0.18
5.67
3
1

Classes

Class Line # Actions
AttachmentMetadataSerializerTest 38 17 0% 3 0
1.0100%
 

Contributing tests

This file is covered by 2 tests. .

Source view

1    /*
2    * See the NOTICE file distributed with this work for additional
3    * information regarding copyright ownership.
4    *
5    * This is free software; you can redistribute it and/or modify it
6    * under the terms of the GNU Lesser General Public License as
7    * published by the Free Software Foundation; either version 2.1 of
8    * the License, or (at your option) any later version.
9    *
10    * This software is distributed in the hope that it will be useful,
11    * but WITHOUT ANY WARRANTY; without even the implied warranty of
12    * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
13    * Lesser General Public License for more details.
14    *
15    * You should have received a copy of the GNU Lesser General Public
16    * License along with this software; if not, write to the Free
17    * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
18    * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
19    */
20    package org.xwiki.store.serialization.xml.internal;
21   
22    import java.io.ByteArrayInputStream;
23    import java.io.ByteArrayOutputStream;
24   
25    import org.apache.commons.io.IOUtils;
26    import org.junit.Assert;
27    import org.junit.Before;
28    import org.junit.Test;
29   
30    import com.xpn.xwiki.doc.XWikiAttachment;
31   
32    /**
33    * Tests for AttachmentMetadataSerializer
34    *
35    * @version $Id: 366c227d0f23a575c96dce540c3dec631c34a37c $
36    * @since 3.0M2
37    */
 
38    public class AttachmentMetadataSerializerTest
39    {
40    private static final String TEST_CONTENT =
41    "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n"
42    + "<attachment serializer=\"attachment-meta/1.0\">\n"
43    + " <filename>file1</filename>\n"
44    + " <filesize>10</filesize>\n"
45    + " <author>me</author>\n"
46    + " <version>1.1</version>\n"
47    + " <comment>something whitty</comment>\n"
48    + " <date>1293045632168</date>\n"
49    + "</attachment>";
50   
51    private AttachmentMetadataSerializer serializer;
52   
 
53  2 toggle @Before
54    public void setUp()
55    {
56  2 this.serializer = new AttachmentMetadataSerializer();
57    }
58   
 
59  1 toggle @Test
60    public void testParse() throws Exception
61    {
62  1 final ByteArrayInputStream bais = new ByteArrayInputStream(TEST_CONTENT.getBytes("US-ASCII"));
63  1 final XWikiAttachment attach = this.serializer.parse(bais);
64  1 bais.close();
65   
66  1 Assert.assertEquals("Attachment1 had wrong name", "file1", attach.getFilename());
67  1 Assert.assertEquals("Attachment1 had wrong author", "me", attach.getAuthor());
68  1 Assert.assertEquals("Attachment1 had wrong version", "1.1", attach.getVersion());
69  1 Assert.assertEquals("Attachment1 had wrong comment",
70    attach.getComment(),
71    "something whitty");
72    // We drop milliseconds for consistency with the database so last 3 digits are 0.
73  1 Assert.assertEquals("Attachment1 had wrong date.",
74    attach.getDate().getTime() + "",
75    "1293045632000");
76    }
77   
 
78  1 toggle @Test
79    public void testParseSerialize() throws Exception
80    {
81  1 final ByteArrayInputStream bais = new ByteArrayInputStream(TEST_CONTENT.getBytes("US-ASCII"));
82  1 final XWikiAttachment attach = this.serializer.parse(bais);
83  1 bais.close();
84   
85  1 final ByteArrayOutputStream baos = new ByteArrayOutputStream();
86  1 IOUtils.copy(this.serializer.serialize(attach), baos);
87  1 final String test = new String(baos.toByteArray(), "US-ASCII");
88  1 final String control = TEST_CONTENT.replaceAll("[0-9][0-9][0-9]</date>", "000</date>");
89  1 Assert.assertEquals("Parsing and serializing yields a different output.", control, test);
90    }
91    }