1 package org.apache.maven.wagon.providers.ssh.knownhost;
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22 import java.io.File;
23
24 import org.codehaus.plexus.util.FileUtils;
25
26 import junit.framework.TestCase;
27
28 public class FileKnownHostsProviderTest
29 extends TestCase
30 {
31 private File basedir = new File( System.getProperty( "basedir", "." ) );
32
33 private File testKnownHostsFile;
34
35
36 private FileKnownHostsProvider provider;
37
38 public void setUp()
39 throws Exception
40 {
41 File readonlyKnownHostFile = new File( basedir, "src/test/resources/known_hosts" );
42 testKnownHostsFile = new File( basedir, "target/known_hosts" );
43 testKnownHostsFile.delete();
44 FileUtils.copyFile( readonlyKnownHostFile, testKnownHostsFile );
45 testKnownHostsFile.setLastModified( testKnownHostsFile.lastModified() - 60 * 1000 );
46
47 provider = new FileKnownHostsProvider( testKnownHostsFile );
48
49 }
50
51 public void testStoreKnownHostsNoChange()
52 throws Exception
53 {
54 long timestamp = this.testKnownHostsFile.lastModified();
55
56 File sameKnownHostFile = new File( basedir, "src/test/resources/known_hosts_same" );
57 String contents = FileUtils.fileRead( sameKnownHostFile );
58
59 provider.storeKnownHosts( contents );
60 assertEquals( "known_hosts file is rewritten", timestamp, testKnownHostsFile.lastModified() );
61 }
62
63 public void testStoreKnownHostsWithChange()
64 throws Exception
65 {
66 long timestamp = this.testKnownHostsFile.lastModified();
67 File sameKnownHostFile = new File( basedir, "src/test/resources/known_hosts_same" );
68 String contents = FileUtils.fileRead( sameKnownHostFile );
69 contents += "1 2 3";
70
71 provider.storeKnownHosts( contents );
72 assertTrue( "known_hosts file is not rewritten", timestamp != testKnownHostsFile.lastModified() );
73 }
74
75 }