github.com/qiniu/go-sdk/v7@v7.27.0/qvs/stream_test.go (about) 1 //go:build integration 2 // +build integration 3 4 package qvs 5 6 import ( 7 "encoding/json" 8 "fmt" 9 "strings" 10 "testing" 11 ) 12 13 func TestStreamCRUD(t *testing.T) { 14 if skipTest() { 15 t.SkipNow() 16 } 17 c := getTestManager() 18 19 ns := &NameSpace{ 20 Name: "testNamespace", 21 AccessType: "rtmp", 22 RTMPURLType: 1, 23 Domains: []string{"qiniu1.com"}, 24 } 25 ns1, err := c.AddNamespace(ns) 26 noError(t, err) 27 28 stream := &Stream{ 29 StreamID: "test001", 30 } 31 _, err = c.AddStream(ns1.ID, stream) 32 noError(t, err) 33 34 stream2, err := c.QueryStream(ns1.ID, "test001") 35 noError(t, err) 36 shouldBeEqual(t, stream.StreamID, stream2.StreamID) 37 38 ops := []PatchOperation{ 39 { 40 Op: "replace", 41 Key: "desc", 42 Value: "test", 43 }, 44 } 45 stream3, err := c.UpdateStream(ns1.ID, stream.StreamID, ops) 46 noError(t, err) 47 shouldBeEqual(t, stream3.StreamID, stream2.StreamID) 48 shouldBeEqual(t, stream3.Desc, "test") 49 50 stream4 := &Stream{ 51 StreamID: "test002", 52 } 53 _, err = c.AddStream(ns1.ID, stream4) 54 noError(t, err) 55 56 stream5 := &Stream{ 57 StreamID: "test003", 58 } 59 _, err = c.AddStream(ns1.ID, stream5) 60 noError(t, err) 61 62 streams, total, err := c.ListStream(ns1.ID, 0, 2, "", "", 0) 63 noError(t, err) 64 shouldBeEqual(t, int64(3), total) 65 shouldBeEqual(t, 2, len(streams)) 66 67 streams, total, err = c.ListStream(ns1.ID, 2, 2, "", "", 0) 68 noError(t, err) 69 shouldBeEqual(t, int64(3), total) 70 shouldBeEqual(t, 1, len(streams)) 71 72 err = c.DisableStream(ns1.ID, stream.StreamID) 73 noError(t, err) 74 ret, err := c.QueryStream(ns1.ID, stream.StreamID) 75 noError(t, err) 76 shouldBeEqual(t, true, ret.Disabled) 77 78 err = c.EnableStream(ns1.ID, stream.StreamID) 79 noError(t, err) 80 ret, err = c.QueryStream(ns1.ID, stream.StreamID) 81 noError(t, err) 82 shouldBeEqual(t, false, ret.Disabled) 83 84 err = c.StopStream(ns1.ID, stream.StreamID) 85 fmt.Println(err) 86 87 c.DeleteStream(ns1.ID, "test001") 88 c.DeleteStream(ns1.ID, "test002") 89 c.DeleteStream(ns1.ID, "test003") 90 91 c.DeleteNamespace(ns1.ID) 92 } 93 94 func TestDynamicPublishPlayURL(t *testing.T) { 95 if skipTest() { 96 t.SkipNow() 97 } 98 c := getTestManager() 99 100 ns := &NameSpace{ 101 Name: "testNamespace", 102 AccessType: "rtmp", 103 RTMPURLType: 2, 104 } 105 ns1, err := c.AddNamespace(ns) 106 noError(t, err) 107 108 ret, err := c.DynamicPublishPlayURL(ns1.ID, "1", &DynamicLiveRoute{PublishIP: "127.0.0.1", PlayIP: "127.0.0.1", UrlExpireSec: 0}) 109 fmt.Println(err, ret) 110 111 err = c.DeleteNamespace(ns1.ID) 112 noError(t, err) 113 } 114 115 func TestStaticPublishPlayURL(t *testing.T) { 116 if skipTest() { 117 t.SkipNow() 118 } 119 c := getTestManager() 120 121 ns := &NameSpace{ 122 Name: "testNamespace", 123 AccessType: "rtmp", 124 RTMPURLType: 1, 125 Domains: []string{"qiniu1.com"}, 126 } 127 ns1, err := c.AddNamespace(ns) 128 noError(t, err) 129 130 ret, err := c.StaticPublishPlayURL(ns1.ID, "1", &StaticLiveRoute{Domain: "qvs-publish.qiniu1.com", DomainType: DomainPublishRTMP}) 131 fmt.Println(err, ret) 132 133 ret, err = c.StaticPublishPlayURL(ns1.ID, "1", &StaticLiveRoute{Domain: "qvs-live-hdl.qiniu1.com", DomainType: DomainLiveHDL}) 134 fmt.Println(err, ret) 135 136 err = c.DeleteNamespace(ns1.ID) 137 noError(t, err) 138 } 139 140 func TestQueryStreamRecordHistories(t *testing.T) { 141 if skipTest() { 142 t.SkipNow() 143 } 144 c := getTestManager() 145 146 items, _, err := c.QueryStreamRecordHistories("2xenzw5o81ods", "31011500991320000356", 1604851200, 1604894400, "", 0, "flv") 147 noError(t, err) 148 for _, v := range items { 149 fmt.Println(v) 150 } 151 } 152 153 func TestDeleteSnapshots(t *testing.T) { 154 if skipTest() { 155 t.SkipNow() 156 } 157 c := getTestManager() 158 159 res := struct { 160 Items []struct { 161 Snap string `json:"snap"` 162 Time int `json:"time"` 163 } `json:"items"` 164 Marker string `json:"marker"` 165 }{} 166 ret, err := c.StreamsSnapshots("2xenzw5o81ods", "31011500991320000356", 1604988765, 1605002214, 1, 20, "") 167 noError(t, err) 168 fmt.Println(string(ret)) 169 err = json.Unmarshal(ret, &res) 170 noError(t, err) 171 fmt.Println(len(res.Items)) 172 if len(res.Items) > 0 { 173 err = c.DeleteSnapshots("2xenzw5o81ods", "31011500991320000356", []string{res.Items[0].Snap[strings.Index(res.Items[0].Snap, "snapshot"):strings.Index(res.Items[0].Snap, "?")]}) 174 noError(t, err) 175 } 176 ret, err = c.StreamsSnapshots("2xenzw5o81ods", "31011500991320000356", 1604988765, 1605002214, 1, 20, "") 177 noError(t, err) 178 err = json.Unmarshal(ret, &res) 179 noError(t, err) 180 fmt.Println(len(res.Items)) 181 }