@@ -21,6 +21,7 @@ package apt
2121import (
2222 "encoding/json"
2323 "io/ioutil"
24+ "os"
2425 "testing"
2526
2627 "github.com/stretchr/testify/require"
@@ -40,3 +41,37 @@ func TestParseAPTConfigFolder(t *testing.T) {
4041 require .EqualValues (t , expected [i ], repo , "Comparing element %d" , i )
4142 }
4243}
44+
45+ func TestAddRepository (t * testing.T ) {
46+ // test cleanup
47+ defer os .Remove ("testdata/apt2/sources.list.d/managed.list" )
48+
49+ repo1 := & Repository {
50+ Enabled : true ,
51+ SourceRepo : false ,
52+ URI : "http://ppa.launchpad.net/webupd8team/java/ubuntu" ,
53+ Distribution : "zesty" ,
54+ Components : "main" ,
55+ Comment : "" ,
56+ }
57+ repo2 := & Repository {
58+ Enabled : false ,
59+ SourceRepo : true ,
60+ URI : "http://ppa.launchpad.net/webupd8team/java/ubuntu" ,
61+ Distribution : "zesty" ,
62+ Components : "main" ,
63+ Comment : "" ,
64+ }
65+ err := AddRepository (repo1 , "testdata/apt2" )
66+ require .NoError (t , err , "Adding repository" )
67+ err = AddRepository (repo2 , "testdata/apt2" )
68+ require .NoError (t , err , "Adding repository" )
69+
70+ repos , err := ParseAPTConfigFolder ("testdata/apt2" )
71+ require .NoError (t , err , "running List command" )
72+ require .True (t , repos .Contains (repo1 ), "Configuration contains: %#v" , repo1 )
73+ require .True (t , repos .Contains (repo1 ), "Configuration contains: %#v" , repo2 )
74+
75+ err = AddRepository (repo2 , "testdata/apt2" )
76+ require .Error (t , err , "Adding repository again" )
77+ }
0 commit comments