@@ -72,3 +72,84 @@ func TestGetMajorVersionFromString_RejectTrailingDot(t *testing.T) {
7272 _ , err := getMajorVersionFromString (fullVersion )
7373 assert .Error (t , err )
7474}
75+
76+ func TestInstallPackageRegex_MatchesPackageName (t * testing.T ) {
77+ const line = "X aarch64 1.1b.8_X-22~rc1.cm2 fetcher-cloned-repo"
78+
79+ matches := InstallPackageRegex .FindStringSubmatch (line )
80+
81+ assert .Len (t , matches , InstallMaxMatchLen )
82+ assert .Equal (t , "X" , matches [InstallPackageName ])
83+ }
84+
85+ func TestInstallPackageRegex_FailsForMissingPackageName (t * testing.T ) {
86+ const line = " aarch64 1.1b.8_X-22~rc1.cm2 fetcher-cloned-repo"
87+
88+ assert .False (t , InstallPackageRegex .MatchString (line ))
89+ }
90+
91+ func TestInstallPackageRegex_MatchesPackageArch (t * testing.T ) {
92+ const line = "X aarch64 1.1b.8_X-22~rc1.cm2 fetcher-cloned-repo"
93+
94+ matches := InstallPackageRegex .FindStringSubmatch (line )
95+
96+ assert .Len (t , matches , InstallMaxMatchLen )
97+ assert .Equal (t , "aarch64" , matches [InstallPackageArch ])
98+ }
99+
100+ func TestInstallPackageRegex_FailsForMissingArch (t * testing.T ) {
101+ const line = "X 1.1b.8_X-22~rc1.cm2 fetcher-cloned-repo"
102+
103+ assert .False (t , InstallPackageRegex .MatchString (line ))
104+ }
105+
106+ func TestInstallPackageRegex_MatchesPackageVersionNoEpoch (t * testing.T ) {
107+ const line = "X aarch64 1.1b.8_X-22~rc1.cm2 fetcher-cloned-repo"
108+
109+ matches := InstallPackageRegex .FindStringSubmatch (line )
110+
111+ assert .Len (t , matches , InstallMaxMatchLen )
112+ assert .Equal (t , "1.1b.8_X-22~rc1" , matches [InstallPackageVersion ])
113+ }
114+
115+ func TestInstallPackageRegex_MatchesPackageVersionWithEpoch (t * testing.T ) {
116+ const line = "X aarch64 5:1.1b.8_X-22~rc1.cm2 fetcher-cloned-repo"
117+
118+ matches := InstallPackageRegex .FindStringSubmatch (line )
119+
120+ assert .Len (t , matches , InstallMaxMatchLen )
121+ assert .Equal (t , "5:1.1b.8_X-22~rc1" , matches [InstallPackageVersion ])
122+ }
123+
124+ func TestInstallPackageRegex_FailsForMissingVersion (t * testing.T ) {
125+ const line = "X aarch64 .cm2 fetcher-cloned-repo"
126+
127+ assert .False (t , InstallPackageRegex .MatchString (line ))
128+ }
129+
130+ func TestInstallPackageRegex_MatchesPackageDist (t * testing.T ) {
131+ const line = "X aarch64 1.1b.8_X-22~rc1.cm2 fetcher-cloned-repo"
132+
133+ matches := InstallPackageRegex .FindStringSubmatch (line )
134+
135+ assert .Len (t , matches , InstallMaxMatchLen )
136+ assert .Equal (t , "cm2" , matches [InstallPackageDist ])
137+ }
138+
139+ func TestInstallPackageRegex_FailsForMissingDist (t * testing.T ) {
140+ const line = "X aarch64 1.1b.8_X-22~rc1 fetcher-cloned-repo"
141+
142+ assert .False (t , InstallPackageRegex .MatchString (line ))
143+ }
144+
145+ func TestInstallPackageRegex_MatchesRandomWhiteSpaces (t * testing.T ) {
146+ const line = "X aarch64 1.1b.8_X-22~rc1.cm2 fetcher-cloned-repo"
147+
148+ assert .True (t , InstallPackageRegex .MatchString (line ))
149+ }
150+
151+ func TestInstallPackageRegex_DoesNotMatchInvalidLine (t * testing.T ) {
152+ const line = "Invalid line"
153+
154+ assert .False (t , InstallPackageRegex .MatchString (line ))
155+ }
0 commit comments