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