github.com/containers/podman/v5@v5.1.0-rc1/test/utils/podmansession_test.go (about)

     1  package utils_test
     2  
     3  import (
     4  	. "github.com/containers/podman/v5/test/utils"
     5  	. "github.com/onsi/ginkgo/v2"
     6  	. "github.com/onsi/gomega"
     7  )
     8  
     9  var _ = Describe("PodmanSession test", func() {
    10  	var session *PodmanSession
    11  
    12  	BeforeEach(func() {
    13  		session = StartFakeCmdSession([]string{"PodmanSession", "test", "Podman Session"})
    14  		session.WaitWithDefaultTimeout()
    15  	})
    16  
    17  	It("Test OutputToString", func() {
    18  		Expect(session.OutputToString()).To(Equal("PodmanSession test Podman Session"))
    19  	})
    20  
    21  	It("Test OutputToStringArray", func() {
    22  		Expect(session.OutputToStringArray()).To(Equal([]string{"PodmanSession", "test", "Podman Session"}))
    23  	})
    24  
    25  	It("Test ErrorToString", func() {
    26  		Expect(session.ErrorToString()).To(Equal("PodmanSession test Podman Session"))
    27  	})
    28  
    29  	It("Test ErrorToStringArray", func() {
    30  		Expect(session.ErrorToStringArray()).To(Equal([]string{"PodmanSession", "test", "Podman Session", ""}))
    31  	})
    32  
    33  	It("Test GrepString", func() {
    34  		match, backStr := session.GrepString("Session")
    35  		Expect(match).To(BeTrue())
    36  		Expect(backStr).To(Equal([]string{"PodmanSession", "Podman Session"}))
    37  
    38  		match, backStr = session.GrepString("I am not here")
    39  		Expect(match).To(Not(BeTrue()))
    40  		Expect(backStr).To(BeNil())
    41  
    42  	})
    43  
    44  	It("Test ErrorGrepString", func() {
    45  		match, backStr := session.ErrorGrepString("Session")
    46  		Expect(match).To(BeTrue())
    47  		Expect(backStr).To(Equal([]string{"PodmanSession", "Podman Session"}))
    48  
    49  		match, backStr = session.ErrorGrepString("I am not here")
    50  		Expect(match).To(Not(BeTrue()))
    51  		Expect(backStr).To(BeNil())
    52  
    53  	})
    54  
    55  	It("Test LineInOutputStartsWith", func() {
    56  		Expect(session.LineInOutputStartsWith("Podman")).To(BeTrue())
    57  		Expect(session.LineInOutputStartsWith("Session")).To(Not(BeTrue()))
    58  	})
    59  
    60  	It("Test LineInOutputContains", func() {
    61  		Expect(session.LineInOutputContains("Podman")).To(BeTrue())
    62  		Expect(session.LineInOutputContains("Session")).To(BeTrue())
    63  		Expect(session.LineInOutputContains("I am not here")).To(Not(BeTrue()))
    64  	})
    65  
    66  	It("Test LineInOutputContainsTag", func() {
    67  		session = StartFakeCmdSession([]string{"HEAD LINE", "docker.io/library/busybox   latest   e1ddd7948a1c   5 weeks ago   1.38MB"})
    68  		session.WaitWithDefaultTimeout()
    69  		Expect(session.LineInOutputContainsTag("docker.io/library/busybox", "latest")).To(BeTrue())
    70  		Expect(session.LineInOutputContainsTag("busybox", "latest")).To(Not(BeTrue()))
    71  	})
    72  
    73  	It("Test IsJSONOutputValid", func() {
    74  		session = StartFakeCmdSession([]string{`{"page":1,"fruits":["apple","peach","pear"]}`})
    75  		session.WaitWithDefaultTimeout()
    76  		Expect(session.IsJSONOutputValid()).To(BeTrue())
    77  
    78  		session = StartFakeCmdSession([]string{"I am not JSON"})
    79  		session.WaitWithDefaultTimeout()
    80  		Expect(session.IsJSONOutputValid()).To(Not(BeTrue()))
    81  	})
    82  
    83  	It("Test WaitWithDefaultTimeout", func() {
    84  		session = StartFakeCmdSession([]string{"sleep", "2"})
    85  		Expect(session.ExitCode()).Should(Equal(-1))
    86  		session.WaitWithDefaultTimeout()
    87  		Expect(session.ExitCode()).Should(Equal(0))
    88  	})
    89  
    90  })