]> source.dussan.org Git - archiva.git/blob
b2594cd4d5ee90b9669067dc2b5dc01c04315766
[archiva.git] /
1 package org.apache.maven.archiva.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.apache.commons.io.FileUtils;
21
22 import java.io.File;
23
24 /**
25  * @author Edwin Punzalan
26  */
27 public class CreateFileEventTest
28     extends PlexusTestCase
29 {
30     private File testDir = new File( PlexusTestCase.getBasedir(), "target/transaction-tests/create-file" );
31
32     public void testCreateCommitRollback()
33         throws Exception
34     {
35         File testFile = new File( testDir, "test-file.txt" );
36
37         CreateFileEvent event = new CreateFileEvent( "file contents", testFile );
38
39         assertFalse( "Test file is not yet created", testFile.exists() );
40
41         event.commit();
42
43         assertTrue( "Test file is not yet created", testFile.exists() );
44
45         event.rollback();
46
47         assertFalse( "Test file is has been deleted after rollback", testFile.exists() );
48         assertFalse( "Test file parent directories has been rolledback too", testDir.exists() );
49         assertTrue( "target directory still exists", new File( PlexusTestCase.getBasedir(), "target" ).exists() );
50     }
51
52     public void testCreateCommitRollbackWithBackup()
53         throws Exception
54     {
55         File testFile = new File( testDir, "test-file.txt" );
56
57         testFile.getParentFile().mkdirs();
58
59         testFile.createNewFile();
60
61         FileUtils.writeStringToFile( testFile, "original contents", null );
62
63         CreateFileEvent event = new CreateFileEvent( "modified contents", testFile );
64
65         String contents = FileUtils.readFileToString( testFile, null );
66
67         assertEquals( "Test contents have not changed", "original contents", contents );
68
69         event.commit();
70
71         contents = FileUtils.readFileToString( testFile, null );
72
73         assertEquals( "Test contents have not changed", "modified contents", contents );
74
75         event.rollback();
76
77         contents = FileUtils.readFileToString( testFile, null );
78
79         assertEquals( "Test contents have not changed", "original contents", contents );
80     }
81
82     public void testCreateRollbackCommit()
83         throws Exception
84     {
85         File testFile = new File( testDir, "test-file.txt" );
86
87         CreateFileEvent event = new CreateFileEvent( "file contents", testFile );
88
89         assertFalse( "Test file is not yet created", testFile.exists() );
90
91         event.rollback();
92
93         assertFalse( "Test file is not yet created", testFile.exists() );
94
95         event.commit();
96
97         assertTrue( "Test file is not yet created", testFile.exists() );
98     }
99
100     protected void tearDown()
101         throws Exception
102     {
103         super.tearDown();
104
105         FileUtils.deleteDirectory( new File( PlexusTestCase.getBasedir(), "target/transaction-tests" ) );
106     }
107 }