@@ -1748,3 +1748,75 @@ func TestIndexOfImageSignature(t *testing.T) {
1748
1748
}
1749
1749
}
1750
1750
}
1751
+
1752
+ func mockImageStream (policy TagReferencePolicyType ) * ImageStream {
1753
+ now := unversioned .Now ()
1754
+ stream := & ImageStream {}
1755
+ stream .Status = ImageStreamStatus {}
1756
+ stream .Spec = ImageStreamSpec {}
1757
+ stream .Spec .Tags = map [string ]TagReference {}
1758
+ stream .Spec .Tags ["latest" ] = TagReference {
1759
+ ReferencePolicy : TagReferencePolicy {
1760
+ Type : policy ,
1761
+ },
1762
+ }
1763
+ stream .Status .DockerImageRepository = "registry:5000/test/foo"
1764
+ stream .Status .Tags = map [string ]TagEventList {}
1765
+ stream .Status .Tags ["latest" ] = TagEventList {Items : []TagEvent {
1766
+ {
1767
+ Image : "sha256:c3d8a3642ebfa6bd1fd50c2b8b90e99d3e29af1eac88637678f982cde90993fa" ,
1768
+ DockerImageReference : "test/bar@sha256:bar" ,
1769
+ Created : now ,
1770
+ Generation : 3 ,
1771
+ },
1772
+ {
1773
+ Image : "sha256:c3d8a3642ebfa6bd1fd50c2b8b90e99d3e29af1eac88637678f982cde90993fb" ,
1774
+ DockerImageReference : "test/foo@sha256:bar" ,
1775
+ Created : now ,
1776
+ Generation : 2 ,
1777
+ },
1778
+ {
1779
+ Image : "sha256:c3d8a3642ebfa6bd1fd50c2b8b90e99d3e29af1eac88637678f982cde90993fb" ,
1780
+ DockerImageReference : "test/foo@sha256:oldbar" ,
1781
+ Created : unversioned.Time {Time : now .Add (- 5 * time .Second )},
1782
+ Generation : 1 ,
1783
+ },
1784
+ }}
1785
+ return stream
1786
+ }
1787
+
1788
+ func TestLatestImageTagEvent (t * testing.T ) {
1789
+ tag , event := LatestImageTagEvent (mockImageStream (SourceTagReferencePolicy ), "sha256:c3d8a3642ebfa6bd1fd50c2b8b90e99d3e29af1eac88637678f982cde90993fb" )
1790
+ if tag != "latest" {
1791
+ t .Errorf ("expected tag 'latest', got %q" , tag )
1792
+ }
1793
+ if event == nil {
1794
+ t .Fatalf ("expected event to not be nil" )
1795
+ }
1796
+ if event .Generation != 2 {
1797
+ t .Errorf ("expected second generation, got %d" , event .Generation )
1798
+ }
1799
+ }
1800
+
1801
+ func TestDockerImageReferenceForImage (t * testing.T ) {
1802
+ reference , ok := DockerImageReferenceForImage (mockImageStream (SourceTagReferencePolicy ), "sha256:c3d8a3642ebfa6bd1fd50c2b8b90e99d3e29af1eac88637678f982cde90993fb" )
1803
+ if ! ok {
1804
+ t .Fatalf ("expected success for source tag policy" )
1805
+ }
1806
+ if reference != "test/foo@sha256:bar" {
1807
+ t .Errorf ("expected source reference to be 'test/foo@sha256:bar', got %q" , reference )
1808
+ }
1809
+
1810
+ reference , ok = DockerImageReferenceForImage (mockImageStream (LocalTagReferencePolicy ), "sha256:c3d8a3642ebfa6bd1fd50c2b8b90e99d3e29af1eac88637678f982cde90993fb" )
1811
+ if ! ok {
1812
+ t .Fatalf ("expected success for local reference policy" )
1813
+ }
1814
+ if reference != "registry:5000/test/foo@sha256:c3d8a3642ebfa6bd1fd50c2b8b90e99d3e29af1eac88637678f982cde90993fb" {
1815
+ t .Errorf ("expected local reference to be 'registry:5000/test/foo@sha256:c3d8a3642ebfa6bd1fd50c2b8b90e99d3e29af1eac88637678f982cde90993fb', got %q" , reference )
1816
+ }
1817
+
1818
+ reference , ok = DockerImageReferenceForImage (mockImageStream (LocalTagReferencePolicy ), "sha256:unknown" )
1819
+ if ok {
1820
+ t .Errorf ("expected failure for unknown image" )
1821
+ }
1822
+ }
0 commit comments