]> source.dussan.org Git - archiva.git/blob
7fbd681c7f528808723b5564c4f27e20e8053167
[archiva.git] /
1 package org.apache.maven.archiva.converter.transaction;
2
3 /*
4  * Licensed to the Apache Software Foundation (ASF) under one
5  * or more contributor license agreements.  See the NOTICE file
6  * distributed with this work for additional information
7  * regarding copyright ownership.  The ASF licenses this file
8  * to you under the Apache License, Version 2.0 (the
9  * "License"); you may not use this file except in compliance
10  * with the License.  You may obtain a copy of the License at
11  *
12  *   http://www.apache.org/licenses/LICENSE-2.0
13  *
14  * Unless required by applicable law or agreed to in writing,
15  * software distributed under the License is distributed on an
16  * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
17  * KIND, either express or implied.  See the License for the
18  * specific language governing permissions and limitations
19  * under the License.
20  */
21
22 import org.apache.commons.io.FileUtils;
23 import org.codehaus.plexus.PlexusTestCase;
24
25 import java.io.File;
26
27 /**
28  * @author Edwin Punzalan
29  */
30 public class CopyFileEventTest
31     extends PlexusTestCase
32 {
33     private File testDir = new File( PlexusTestCase.getBasedir(), "target/transaction-tests/copy-file" );
34
35     private File testDest = new File( testDir, "test-file.txt" );
36
37     private File testSource = new File( PlexusTestCase.getBasedir(), "target/transaction-tests/test-file.txt" );
38
39     public void setUp()
40         throws Exception
41     {
42         super.setUp();
43
44         testSource.getParentFile().mkdirs();
45
46         testSource.createNewFile();
47
48         FileUtils.writeStringToFile( testSource, "source contents", null );
49     }
50
51     public void testCopyCommitRollback()
52         throws Exception
53     {
54         assertTrue( "Test if the source exists", testSource.exists() );
55
56         String source = FileUtils.readFileToString( testSource, null );
57
58         CopyFileEvent event = new CopyFileEvent( testSource, testDest );
59
60         assertFalse( "Test that the destination is not yet created", testDest.exists() );
61
62         event.commit();
63
64         assertTrue( "Test that the destination is created", testDest.exists() );
65
66         String target = FileUtils.readFileToString( testDest, null );
67
68         assertTrue( "Test that the destination contents are copied correctly", source.equals( target ) );
69
70         event.rollback();
71
72         assertFalse( "Test that the destination file has been deleted", testDest.exists() );
73     }
74
75     public void testCopyCommitRollbackWithBackup()
76         throws Exception
77     {
78         assertTrue( "Test if the source exists", testSource.exists() );
79
80         String source = FileUtils.readFileToString( testSource, null );
81
82         testDest.getParentFile().mkdirs();
83
84         testDest.createNewFile();
85
86         FileUtils.writeStringToFile( testDest, "overwritten contents", null );
87
88         assertTrue( "Test that the destination exists", testDest.exists() );
89
90         CopyFileEvent event = new CopyFileEvent( testSource, testDest );
91
92         String target = FileUtils.readFileToString( testDest, null );
93
94         assertTrue( "Test that the destination contents have not changed", target.equals( "overwritten contents" ) );
95
96         event.commit();
97
98         target = FileUtils.readFileToString( testDest, null );
99
100         assertTrue( "Test that the destination contents are copied correctly", source.equals( target ) );
101
102         event.rollback();
103
104         target = FileUtils.readFileToString( testDest, null );
105
106         assertTrue( "Test the destination file contents have been restored", target.equals( "overwritten contents" ) );
107     }
108
109     public void testCreateRollbackCommit()
110         throws Exception
111     {
112         assertTrue( "Test if the source exists", testSource.exists() );
113
114         String source = FileUtils.readFileToString( testSource, null );
115
116         CopyFileEvent event = new CopyFileEvent( testSource, testDest );
117
118         assertFalse( "Test that the destination is not yet created", testDest.exists() );
119
120         event.rollback();
121
122         assertFalse( "Test that the destination file is not yet created", testDest.exists() );
123
124         event.commit();
125
126         assertTrue( "Test that the destination is created", testDest.exists() );
127
128         String target = FileUtils.readFileToString( testDest, null );
129
130         assertTrue( "Test that the destination contents are copied correctly", source.equals( target ) );
131     }
132
133     protected void tearDown()
134         throws Exception
135     {
136         super.tearDown();
137
138         FileUtils.deleteDirectory( new File( PlexusTestCase.getBasedir(), "target/transaction-tests" ) );
139     }
140 }