How to use Match method of test_helpers Package

Best Ginkgo code snippet using test_helpers.Match

candidates_test.go

Source:candidates_test.go Github

copy

Full Screen

...41 userIds, err := GetCandidates(42 db, []string{"SOFTWARE_ENGINEERING", "MECHATRONICS_ENGINEERING"}, []uint{2021, 2022},43 true, 2021, nil, nil)44 assert.NoError(t, err)45 assert.ElementsMatch(t, []data.TUserID{user1.UserId, user3.UserId}, userIds)46 },47 }48 test.RunTestWithDb(thisTest)49}50func TestGetUpperYears(t *testing.T) {51 thisTest := test.Test{52 Test: func(db *gorm.DB) {53 sequenceId := "8_STREAM"54 sequenceName := "8 Stream"55 user1, err := test_helpers.CreateTestUser(db, 1)56 assert.NoError(t, err)57 err = test_helpers.CreateCohortForUser(58 db, user1, "SOFTWARE_ENGINEERING", "Software Engineering", 2022, true,59 &sequenceId, &sequenceName)60 assert.NoError(t, err)61 user2, err := test_helpers.CreateTestUser(db, 2)62 assert.NoError(t, err)63 err = test_helpers.CreateCohortForUser(64 db, user2, "SOFTWARE_ENGINEERING", "Software Engineering", 2021, true,65 &sequenceId, &sequenceName)66 assert.NoError(t, err)67 user3, err := test_helpers.CreateTestUser(db, 3)68 assert.NoError(t, err)69 err = test_helpers.CreateCohortForUser(70 db, user3, "MECHATRONICS_ENGINEERING", "Mechatronics Engineering", 2021, true,71 &sequenceId, &sequenceName)72 assert.NoError(t, err)73 user4, err := test_helpers.CreateTestUser(db, 4)74 assert.NoError(t, err)75 err = test_helpers.CreateCohortForUser(76 db, user4, "ENVIRONMENTAL_ENGINEERING", "Environmental Engineering", 2022, true,77 &sequenceId, &sequenceName)78 assert.NoError(t, err)79 userIds, err := GetCandidates(80 db, []string{"SOFTWARE_ENGINEERING", "MECHATRONICS_ENGINEERING"}, []uint{2021, 2022}, false,81 2021, nil, nil)82 assert.NoError(t, err)83 assert.ElementsMatch(t, []data.TUserID{user2.UserId, user3.UserId}, userIds)84 },85 }86 test.RunTestWithDb(thisTest)87}88func TestGetLowerYearsWithinCreatedAtRange(t *testing.T) {89 thisTest := test.Test{90 Test: func(db *gorm.DB) {91 sequenceId := "8_STREAM"92 sequenceName := "8 Stream"93 now := time.Now()94 user1, err := test_helpers.CreateTestUser(db, 1)95 assert.NoError(t, err)96 user1.CreatedAt = now.AddDate(0, 0, -2)97 err = db.Save(user1).Error98 assert.NoError(t, err)99 err = test_helpers.CreateCohortForUser(100 db, user1, "SOFTWARE_ENGINEERING", "Software Engineering", 2022, true,101 &sequenceId, &sequenceName)102 assert.NoError(t, err)103 user2, err := test_helpers.CreateTestUser(db, 2)104 assert.NoError(t, err)105 err = test_helpers.CreateCohortForUser(106 db, user2, "SOFTWARE_ENGINEERING", "Software Engineering", 2022, true,107 &sequenceId, &sequenceName)108 assert.NoError(t, err)109 user3, err := test_helpers.CreateTestUser(db, 3)110 assert.NoError(t, err)111 user3.CreatedAt = now.AddDate(0, 0, 2)112 err = db.Save(user3).Error113 assert.NoError(t, err)114 err = test_helpers.CreateCohortForUser(115 db, user3, "SOFTWARE_ENGINEERING", "Software Engineering", 2022, true,116 &sequenceId, &sequenceName)117 assert.NoError(t, err)118 from := now.AddDate(0, 0, -1)119 to := now.AddDate(0, 0, 1)120 userIds, err := GetCandidates(121 db, []string{"SOFTWARE_ENGINEERING", "MECHATRONICS_ENGINEERING"}, []uint{2021, 2022}, true,122 2021, &from, &to)123 assert.NoError(t, err)124 assert.ElementsMatch(t, []data.TUserID{user2.UserId}, userIds)125 },126 }127 test.RunTestWithDb(thisTest)128}129func TestGetLowerYearsWithinCreatedAtRangeBoundaryInclusive(t *testing.T) {130 thisTest := test.Test{131 Test: func(db *gorm.DB) {132 sequenceId := "8_STREAM"133 sequenceName := "8 Stream"134 now := time.Now()135 user1, err := test_helpers.CreateTestUser(db, 1)136 assert.NoError(t, err)137 user1.CreatedAt = now.AddDate(0, 0, -2)138 err = db.Save(user1).Error139 assert.NoError(t, err)140 err = test_helpers.CreateCohortForUser(141 db, user1, "SOFTWARE_ENGINEERING", "Software Engineering", 2022, true,142 &sequenceId, &sequenceName)143 assert.NoError(t, err)144 user2, err := test_helpers.CreateTestUser(db, 2)145 assert.NoError(t, err)146 err = test_helpers.CreateCohortForUser(147 db, user2, "SOFTWARE_ENGINEERING", "Software Engineering", 2022, true,148 &sequenceId, &sequenceName)149 assert.NoError(t, err)150 user3, err := test_helpers.CreateTestUser(db, 3)151 assert.NoError(t, err)152 user3.CreatedAt = now.AddDate(0, 0, 2)153 err = db.Save(user3).Error154 assert.NoError(t, err)155 err = test_helpers.CreateCohortForUser(156 db, user3, "SOFTWARE_ENGINEERING", "Software Engineering", 2022, true,157 &sequenceId, &sequenceName)158 assert.NoError(t, err)159 from := now.AddDate(0, 0, -2)160 to := now.AddDate(0, 0, 2)161 userIds, err := GetCandidates(162 db, []string{"SOFTWARE_ENGINEERING", "MECHATRONICS_ENGINEERING"}, []uint{2021, 2022}, true,163 2021, &from, &to)164 assert.NoError(t, err)165 assert.ElementsMatch(t, []data.TUserID{user1.UserId, user2.UserId, user3.UserId}, userIds)166 },167 }168 test.RunTestWithDb(thisTest)169}170func TestGetLowerUpperYears(t *testing.T) {171 thisTest := test.Test{172 Test: func(db *gorm.DB) {173 sequenceId := "8_STREAM"174 sequenceName := "8 Stream"175 user1, err := test_helpers.CreateTestUser(db, 1)176 assert.NoError(t, err)177 err = test_helpers.CreateCohortForUser(178 db, user1, "SOFTWARE_ENGINEERING", "Software Engineering", 2022, true,179 &sequenceId, &sequenceName)180 assert.NoError(t, err)181 user2, err := test_helpers.CreateTestUser(db, 2)182 assert.NoError(t, err)183 err = test_helpers.CreateCohortForUser(184 db, user2, "SOFTWARE_ENGINEERING", "Software Engineering", 2021, true,185 &sequenceId, &sequenceName)186 assert.NoError(t, err)187 user3, err := test_helpers.CreateTestUser(db, 3)188 assert.NoError(t, err)189 err = test_helpers.CreateCohortForUser(190 db, user3, "MECHATRONICS_ENGINEERING", "Mechatronics Engineering", 2022, true,191 &sequenceId, &sequenceName)192 assert.NoError(t, err)193 user4, err := test_helpers.CreateTestUser(db, 4)194 assert.NoError(t, err)195 err = test_helpers.CreateCohortForUser(196 db, user4, "ENVIRONMENTAL_ENGINEERING", "Environmental Engineering", 2022, true,197 &sequenceId, &sequenceName)198 assert.NoError(t, err)199 userIds, err := GetFilteredLowerAndAllUpperYears(200 db, []string{"SOFTWARE_ENGINEERING", "MECHATRONICS_ENGINEERING"}, []uint{2021, 2022}, 2021,201 nil, nil)202 assert.NoError(t, err)203 assert.ElementsMatch(t, []data.TUserID{user1.UserId, user2.UserId, user3.UserId}, userIds)204 },205 }206 test.RunTestWithDb(thisTest)207}208func TestGetLowerUpperYearsRestrictGradYears(t *testing.T) {209 thisTest := test.Test{210 Test: func(db *gorm.DB) {211 sequenceId := "8_STREAM"212 sequenceName := "8 Stream"213 user1, err := test_helpers.CreateTestUser(db, 1)214 assert.NoError(t, err)215 err = test_helpers.CreateCohortForUser(216 db, user1, "SOFTWARE_ENGINEERING", "Software Engineering", 2022, true,217 &sequenceId, &sequenceName)218 assert.NoError(t, err)219 user2, err := test_helpers.CreateTestUser(db, 2)220 assert.NoError(t, err)221 err = test_helpers.CreateCohortForUser(222 db, user2, "SOFTWARE_ENGINEERING", "Software Engineering", 2021, true,223 &sequenceId, &sequenceName)224 assert.NoError(t, err)225 userIds, err := GetFilteredLowerAndAllUpperYears(226 db, []string{"SOFTWARE_ENGINEERING"}, []uint{2021}, 2000, nil, nil)227 assert.NoError(t, err)228 assert.ElementsMatch(t, []data.TUserID{user2.UserId}, userIds)229 },230 }231 test.RunTestWithDb(thisTest)232}233func TestGetLowerUpperYearsRanges(t *testing.T) {234 thisTest := test.Test{235 Test: func(db *gorm.DB) {236 sequenceId := "8_STREAM"237 sequenceName := "8 Stream"238 now := time.Now()239 user1, err := test_helpers.CreateTestUser(db, 1)240 assert.NoError(t, err)241 user1.CreatedAt = now.AddDate(0, 0, -2)242 err = db.Save(user1).Error243 assert.NoError(t, err)244 err = test_helpers.CreateCohortForUser(245 db, user1, "SOFTWARE_ENGINEERING", "Software Engineering", 2022, true,246 &sequenceId, &sequenceName)247 assert.NoError(t, err)248 user2, err := test_helpers.CreateTestUser(db, 2)249 assert.NoError(t, err)250 err = test_helpers.CreateCohortForUser(251 db, user2, "SOFTWARE_ENGINEERING", "Software Engineering", 2022, true,252 &sequenceId, &sequenceName)253 assert.NoError(t, err)254 user3, err := test_helpers.CreateTestUser(db, 3)255 assert.NoError(t, err)256 user3.CreatedAt = now.AddDate(0, 0, 2)257 err = db.Save(user3).Error258 assert.NoError(t, err)259 err = test_helpers.CreateCohortForUser(260 db, user3, "SOFTWARE_ENGINEERING", "Software Engineering", 2022, true,261 &sequenceId, &sequenceName)262 assert.NoError(t, err)263 user4, err := test_helpers.CreateTestUser(db, 4)264 assert.NoError(t, err)265 user4.CreatedAt = now.AddDate(0, 0, -2)266 err = db.Save(user4).Error267 assert.NoError(t, err)268 err = test_helpers.CreateCohortForUser(269 db, user4, "SOFTWARE_ENGINEERING", "Software Engineering", 2021, true,270 &sequenceId, &sequenceName)271 assert.NoError(t, err)272 user5, err := test_helpers.CreateTestUser(db, 5)273 assert.NoError(t, err)274 err = test_helpers.CreateCohortForUser(275 db, user5, "SOFTWARE_ENGINEERING", "Software Engineering", 2021, true,276 &sequenceId, &sequenceName)277 assert.NoError(t, err)278 user6, err := test_helpers.CreateTestUser(db, 6)279 assert.NoError(t, err)280 user6.CreatedAt = now.AddDate(0, 0, 2)281 err = db.Save(user6).Error282 assert.NoError(t, err)283 err = test_helpers.CreateCohortForUser(284 db, user6, "SOFTWARE_ENGINEERING", "Software Engineering", 2021, true,285 &sequenceId, &sequenceName)286 assert.NoError(t, err)287 from := now.AddDate(0, 0, -1)288 to := now.AddDate(0, 0, 1)289 userIds, err := GetFilteredLowerAndAllUpperYears(290 db, []string{"SOFTWARE_ENGINEERING", "MECHATRONICS_ENGINEERING"}, []uint{2021, 2022}, 2021,291 &from, &to)292 assert.NoError(t, err)293 assert.ElementsMatch(t, []data.TUserID{294 user2.UserId, user4.UserId, user5.UserId, user6.UserId,295 }, userIds)296 },297 }298 test.RunTestWithDb(thisTest)299}...

Full Screen

Full Screen

match_round_commit_job_test.go

Source:match_round_commit_job_test.go Github

copy

Full Screen

...23func TestJobIntegration(t *testing.T) {24 theseTests := []test.Test{25 test.Test{26 Test: func(db *gorm.DB) {27 users, err := test_helpers.CreateUsersForMatching(db)28 assert.NoError(t, err)29 matchRound, err := test_helpers.CreateTestMatchRound(db)30 expectedMatches := []match{31 match{users[3].UserId, users[0].UserId},32 match{users[4].UserId, users[1].UserId},33 match{users[5].UserId, users[2].UserId},34 match{users[6].UserId, users[7].UserId},35 }36 for _, match := range expectedMatches {37 matchRoundMatch := data.MatchRoundMatch{38 MatchRoundId: matchRound.Id,39 MenteeUserId: match.menteeId,40 MentorUserId: match.mentorId,41 Score: 123,42 }43 err = db.Save(&matchRoundMatch).Error44 assert.NoError(t, err)45 }46 // Create some existing connections to see if idempotency works47 test_helpers.CreateTestConnection(t, db, users[4].UserId, users[1].UserId)48 connId1 := test_helpers.CreateTestConnection(t, db, users[5].UserId, users[2].UserId)49 connId2 := test_helpers.CreateTestConnection(t, db, users[6].UserId, users[7].UserId)50 test_helpers.CreateTestMentorship(t, db, users[5].UserId, connId1)51 test_helpers.CreateTestConnectionMatchRound(t, db, connId2, matchRound.Id)52 runId, err := CreateCommitJob(db, matchRound.Id)53 assert.NoError(t, err)54 assert.Equal(t, fmt.Sprintf("match-round-commit-%d", matchRound.Id), *runId)55 jobmine_utility.RunAndTestRunners(t, db, *runId, specStore)56 sqs := utility.QueueHelper.(utility.LocalQueueImpl)57 go sqs.QueueProcessor()58 var connections []data.Connection59 err = db.Model(60 &data.Connection{},61 ).Preload("Mentorship").Preload("MatchRounds").Find(&connections).Error62 assert.NoError(t, err)63 assert.Equal(t, len(expectedMatches), len(connections))64 matches := make([]match, 0)65 for _, connection := range connections {66 assert.NotNil(t, connection.Mentorship)67 assert.NotNil(t, connection.AcceptedAt)68 matches = append(matches, match{connection.UserOneId, connection.UserTwoId})69 assert.Equal(t, connection.Mentorship.MentorUserId, connection.UserOneId)70 assert.Equal(t, 1, len(connection.MatchRounds))71 assert.Equal(t, matchRound.Id, connection.MatchRounds[0].MatchRoundId)72 }73 assert.ElementsMatch(t, expectedMatches, matches)74 },75 },76 }77 test.RunTestsWithDb(theseTests)78}...

Full Screen

Full Screen

regex_safe_say_test.go

Source:regex_safe_say_test.go Github

copy

Full Screen

1package test_helpers_test2import (3 . "github.com/onsi/ginkgo"4 . "github.com/onsi/gomega"5 "github.com/onsi/gomega/gbytes"6 "github.com/cloudfoundry-incubator/ltc/test_helpers"7)8var _ = Describe("RegexSafeSay", func() {9 var outputBuffer *gbytes.Buffer10 BeforeEach(func() {11 outputBuffer = gbytes.NewBuffer()12 })13 Describe("Say", func() {14 BeforeEach(func() {15 outputBuffer.Write([]byte(`match this \|?-^$.(){}`))16 })17 It("matches with regex-escaped characters", func() {18 Expect(outputBuffer).To(test_helpers.Say(`match this \|?-^$.(){}`))19 })20 It("negated match", func() {21 Expect(outputBuffer).NotTo(test_helpers.Say("match that"))22 })23 Context("when format string is passed with arguments", func() {24 It("matches with regex-escaped characters", func() {25 Expect(outputBuffer).To(test_helpers.Say(`match %s \|?-^$.(){}`, "this"))26 })27 })28 })29 Describe("SayLine", func() {30 BeforeEach(func() {31 outputBuffer.Write([]byte(`match this \|?-^$.(){}` + "\n"))32 })33 It("matches with regex-escaped characters", func() {34 Expect(outputBuffer).To(test_helpers.SayLine(`match this \|?-^$.(){}`))35 })36 It("negated match", func() {37 Expect(outputBuffer).NotTo(test_helpers.SayLine("match that"))38 })39 Context("when format string is passed with arguments", func() {40 It("matches with regex-escaped characters", func() {41 Expect(outputBuffer).To(test_helpers.SayLine(`match %s \|?-^$.(){}`, "this"))42 })43 })44 })45 Describe("SayIncorrectUsage", func() {46 It("matches", func() {47 outputBuffer.Write([]byte("Incorrect Usage"))48 Expect(outputBuffer).To(test_helpers.SayIncorrectUsage())49 })50 It("negated match", func() {51 outputBuffer.Write([]byte("say that"))52 Expect(outputBuffer).NotTo(test_helpers.SayIncorrectUsage())53 })54 })55 Describe("SayNewLine", func() {56 It("matches a newline character", func() {57 outputBuffer.Write([]byte("\n"))58 Expect(outputBuffer).To(test_helpers.SayNewLine())59 })60 It("negated match", func() {61 outputBuffer.Write([]byte("say that"))62 Expect(outputBuffer).NotTo(test_helpers.SayNewLine())63 })64 })65})...

Full Screen

Full Screen

Match

Using AI Code Generation

copy

Full Screen

1func TestMatch(t *testing.T) {2 test_helpers.Match(t, "a", "a")3}4func TestMatch(t *testing.T) {5 test_helpers.Match(t, "a", "a")6}7func TestMatch(t *testing.T) {8 test_helpers.Match(t, "a", "a")9}

Full Screen

Full Screen

Match

Using AI Code Generation

copy

Full Screen

1import (2func main() {3 publicKey, privateKey, err := box.GenerateKey(rand.Reader)4 if err != nil {5 log.Fatal(err)6 }7 nonce, err := box.GenerateNonce(rand.Reader)8 if err != nil {9 log.Fatal(err)10 }11 encrypted := box.Seal(nil, []byte("Hello, world"), nonce, publicKey, privateKey)12 decrypted, ok := box.Open(nil, encrypted, nonce, publicKey, privateKey)13 if !ok {14 log.Fatal("decryption failed!")15 }16 fmt.Println(string(decrypted))17 key := secretbox.GenerateKey()18 nonce, err = secretbox.GenerateNonce(rand.Reader)19 if err != nil {20 log.Fatal(err)21 }22 encrypted = secretbox.Seal(nil, []byte("Hello, world"), nonce, key)23 decrypted, ok = secretbox.Open(nil, encrypted, nonce, key)24 if !ok {25 log.Fatal("decryption failed!")26 }27 fmt.Println(string(decrypted))28 publicKey, privateKey, err = sign.GenerateKey(rand.Reader)29 if err != nil {30 log.Fatal(err)31 }32 signed := sign.Sign(nil, []byte("Hello, world"), privateKey)33 ok = sign.Verify(signed, publicKey)34 if !ok {35 log.Fatal("verification failed!")36 }37 fmt.Println(string(signed))38}39import (40func TestSecretBox(t *testing.T) {41 key := secretbox.GenerateKey()

Full Screen

Full Screen

Match

Using AI Code Generation

copy

Full Screen

1import "test_helpers"2func main() {3 test_helpers.Match("string to match", "string to be matched")4}5import "testing"6func Match(expected string, actual string) {7 if expected != actual {8 t.Errorf("Expected: %s, Actual: %s", expected, actual)9 }10}

Full Screen

Full Screen

Match

Using AI Code Generation

copy

Full Screen

1if !test_helpers.Match("test") {2 t.Error("Expected 'test' to match 'test'")3}4if test_helpers.Match("test") {5 t.Error("Expected 'test' to not match 'test'")6}7if !test_helpers.Match("test") {8 t.Error("Expected 'test' to match 'test'")9}10if test_helpers.Match("test") {11 t.Error("Expected 'test' to not match 'test'")12}13if !test_helpers.Match("test") {14 t.Error("Expected 'test' to match 'test'")15}16if test_helpers.Match("test") {17 t.Error("Expected 'test' to not match 'test'")18}19if !test_helpers.Match("test") {20 t.Error("Expected 'test' to match 'test'")21}22if test_helpers.Match("test") {23 t.Error("Expected 'test' to not match 'test'")24}25if !test_helpers.Match("test") {26 t.Error("Expected 'test' to match 'test'")27}28if test_helpers.Match("test") {29 t.Error("Expected 'test' to not match 'test'")30}31if !test_helpers.Match("test") {32 t.Error("Expected 'test' to match 'test'")33}34if test_helpers.Match("test") {35 t.Error("Expected 'test' to not match 'test'")36}37if !test_helpers.Match("test") {38 t.Error("Expected 'test' to match 'test'")39}40if test_helpers.Match("test") {41 t.Error("Expected '

Full Screen

Full Screen

Match

Using AI Code Generation

copy

Full Screen

1import (2func main() {3 fmt.Println("Hello, playground")4 test_helpers.Match("Hello, playground", regexp.MustCompile("Hello, playground"))5}6import (7func main() {8 fmt.Println("Hello, playground")9 test_helpers.Match("Hello, playground", regexp.MustCompile("Hello, playground"))10}11import (12func Match(t *testing.T, actual interface{}, expected interface{}) {13 if !reflect.DeepEqual(actual, expected) {14 t.Errorf("Expected %v, but got %v", expected, actual)15 }16}17func MatchRegexp(t *testing.T, actual string, expected *regexp.Regexp) {18 if !expected.MatchString(actual) {19 t.Errorf("Expected %v to match %v", actual, expected)20 }21}22func Assert(t *testing.T, condition bool, message string) {23 if !condition {24 t.Errorf(message)25 }26}27import (28func Match(t *testing.T, actual interface{}, expected interface{}) {29 if !reflect.DeepEqual(actual, expected) {30 t.Errorf("Expected %v, but got %v", expected, actual)31 }32}33func MatchRegexp(t *testing.T, actual string, expected *regexp.Regexp) {34 if !expected.MatchString(actual) {35 t.Errorf("Expected %v to match %v", actual, expected)36 }37}38func Assert(t *testing.T, condition bool, message string) {39 if !condition {40 t.Errorf(message)41 }42}43import (44func Match(t *testing.T, actual interface{}, expected interface{}) {45 if !reflect.DeepEqual(actual, expected) {46 t.Errorf("Expected %v, but got %v", expected, actual)47 }48}49func MatchRegexp(t *testing.T, actual string, expected *regexp.Regexp) {50 if !expected.MatchString(actual) {51 t.Errorf("Expected %v to match %v", actual, expected)52 }53}54func Assert(t *testing.T

Full Screen

Full Screen

Match

Using AI Code Generation

copy

Full Screen

1func TestGetUser(t *testing.T) {2}3func Match(response string, expectedResponse string) bool {4 if response != expectedResponse {5 }6}

Full Screen

Full Screen

Match

Using AI Code Generation

copy

Full Screen

1import (2func main() {3 fmt.Println(test_helpers.Match("foo", "foo"))4}5import (6func main() {7 fmt.Println(test_helpers.Match("foo", "bar"))8}9import (10func main() {11 fmt.Println(test_helpers.Match("foo", "foo"))12}13import (14func main() {15 fmt.Println(test_helpers.Match("foo", "bar"))16}17import (18func main() {19 fmt.Println(test_helpers.Match("foo", "foo"))20}21import (22func main() {23 fmt.Println(test_helpers.Match("foo", "bar"))24}25import (26func main() {27 fmt.Println(test_helpers.Match("foo", "foo"))28}29import (30func main() {31 fmt.Println(test_helpers.Match("foo", "bar"))32}

Full Screen

Full Screen

Automation Testing Tutorials

Learn to execute automation testing from scratch with LambdaTest Learning Hub. Right from setting up the prerequisites to run your first automation test, to following best practices and diving deeper into advanced test scenarios. LambdaTest Learning Hubs compile a list of step-by-step guides to help you be proficient with different test automation frameworks i.e. Selenium, Cypress, TestNG etc.

LambdaTest Learning Hubs:

YouTube

You could also refer to video tutorials over LambdaTest YouTube channel to get step by step demonstration from industry experts.

Try LambdaTest Now !!

Get 100 minutes of automation test minutes FREE!!

Next-Gen App & Browser Testing Cloud

Was this article helpful?

Helpful

NotHelpful