From 4dc7c544ef3ae0d0e4b8cfd3dbbd57fedf65035d Mon Sep 17 00:00:00 2001 From: lleadbet Date: Fri, 19 Mar 2021 08:40:34 -0700 Subject: [PATCH 1/2] Adding new RandomInt utility + updating tests --- .../types/hype_train/hype_train_event.go | 17 ++++++++------- internal/util/random.go | 21 +++++++++++++------ internal/util/random_test.go | 19 +++++++++++++++++ 3 files changed, 43 insertions(+), 14 deletions(-) diff --git a/internal/events/types/hype_train/hype_train_event.go b/internal/events/types/hype_train/hype_train_event.go index 54c7479f..eadc6c5f 100644 --- a/internal/events/types/hype_train/hype_train_event.go +++ b/internal/events/types/hype_train/hype_train_event.go @@ -35,11 +35,12 @@ func (e Event) GenerateEvent(params events.MockEventParameters) (events.MockEven var event []byte var err error lastUser := util.RandomUserID() - lastTotal := util.RandomViewerCount() + lastTotal := util.RandomInt(10 * 100) lastType := util.RandomType() + //Local variables which will be used for the trigger params below - localTotal := util.RandomViewerCount() - localGoal := util.RandomViewerCount() + localTotal := util.RandomInt(10 * 100) + localGoal := util.RandomInt(10*100*100) + localTotal localProgress := (localTotal / localGoal) switch params.Transport { @@ -63,12 +64,12 @@ func (e Event) GenerateEvent(params events.MockEventParameters) (events.MockEven BroadcasterUserID: params.ToUserID, BroadcasterUserLogin: params.ToUserName, BroadcasterUserName: params.ToUserName, - Total: util.RandomViewerCount(), + Total: localTotal, Progress: localProgress, Goal: localGoal, TopContributions: []models.ContributionData{ { - TotalContribution: util.RandomViewerCount(), + TotalContribution: util.RandomInt(10 * 100), TypeOfContribution: util.RandomType(), UserWhoMadeContribution: util.RandomUserID(), UserNameWhoMadeContribution: "cli_user1", @@ -94,7 +95,7 @@ func (e Event) GenerateEvent(params events.MockEventParameters) (events.MockEven }, } if triggerMapping[params.Transport][params.Trigger] == "hype-train-end " { - body.Event.CooldownEndsAtTimestamp = util.GetTimestamp().Format(time.RFC3339Nano) + body.Event.CooldownEndsAtTimestamp = util.GetTimestamp().Add(1 * time.Hour).Format(time.RFC3339Nano) } event, err = json.Marshal(body) if err != nil { @@ -119,7 +120,7 @@ func (e Event) GenerateEvent(params events.MockEventParameters) (events.MockEven TypeOfContribution: lastType, WebSubUser: lastUser, }, - Level: util.RandomViewerCount() % 4, + Level: util.RandomInt(4) + 1, StartedAtTimestamp: util.GetTimestamp().Format(time.RFC3339), TopContributions: []models.ContributionData{ { @@ -128,7 +129,7 @@ func (e Event) GenerateEvent(params events.MockEventParameters) (events.MockEven WebSubUser: lastUser, }, { - TotalContribution: util.RandomViewerCount(), + TotalContribution: util.RandomInt(10 * 100), TypeOfContribution: util.RandomType(), WebSubUser: util.RandomUserID(), }, diff --git a/internal/util/random.go b/internal/util/random.go index ceac3936..2e6cdf10 100644 --- a/internal/util/random.go +++ b/internal/util/random.go @@ -38,25 +38,34 @@ func RandomClientID() string { return fmt.Sprintf("%x", b)[:30] } -// RandomViewerCount generates a fake viewercount between 0->10,000,000 +// RandomViewerCount generates a fake viewercount between 0->100,000 func RandomViewerCount() int64 { - viewer, err := rand.Int(rand.Reader, big.NewInt(1*10*100*100*100)) + viewer, err := rand.Int(rand.Reader, big.NewInt(10*100*100)) if err != nil { log.Fatal(err.Error()) } return viewer.Int64() } +//RandomInt generates a random integer between 0->max +func RandomInt(max int64) int64 { + someInt, err := rand.Int(rand.Reader, big.NewInt(max)) + if err != nil { + log.Fatal(err.Error()) + } + + return someInt.Int64() +} + // RandomType generates a fake type; Either bits or subscription, in roughly even distribution func RandomType() string { someInt, err := rand.Int(rand.Reader, big.NewInt(1*10*100*100*100)) if err != nil { log.Fatal(err.Error()) } - if (someInt.Int64()%2) == 0{ + if (someInt.Int64() % 2) == 0 { return "bits" - }else - { + } else { return "subscription" } -} \ No newline at end of file +} diff --git a/internal/util/random_test.go b/internal/util/random_test.go index 8f095771..80a8f289 100644 --- a/internal/util/random_test.go +++ b/internal/util/random_test.go @@ -37,3 +37,22 @@ func TestRandomViewerCount(t *testing.T) { a.NotEmpty(viewers) } + +func TestRandomType(t *testing.T) { + a := assert.New(t) + + // run the test 20 times to make sure to get at least one of each random type + for i := 0; i < 20; i++ { + randomType := RandomType() + + a.NotEmpty(randomType) + } +} + +func TestRandomInt(t *testing.T) { + a := assert.New(t) + + randomInt := RandomInt(10) + + a.Equal(true, randomInt >= 0) +} From 2e8eb1c0c95961d5d1b53edc99b83ed67326364a Mon Sep 17 00:00:00 2001 From: lleadbet Date: Fri, 19 Mar 2021 09:11:02 -0700 Subject: [PATCH 2/2] updating streamup to use randomviewercount --- internal/events/types/streamup/streamup.go | 26 +++++++++++----------- 1 file changed, 13 insertions(+), 13 deletions(-) diff --git a/internal/events/types/streamup/streamup.go b/internal/events/types/streamup/streamup.go index 84d6a3ec..8b69b863 100644 --- a/internal/events/types/streamup/streamup.go +++ b/internal/events/types/streamup/streamup.go @@ -71,20 +71,20 @@ func (e Event) GenerateEvent(params events.MockEventParameters) (events.MockEven body := models.StreamUpWebSubResponse{ Data: []models.StreamUpWebSubResponseData{ { - ID: params.ID, - UserID: params.ToUserID, - UserLogin: params.ToUserName, - UserName: params.ToUserName, - GameID: "509658", - Type: "live", - Title: params.StreamTitle, - ViewerCount: 1337, - StartedAt: util.GetTimestamp().Format(time.RFC3339), - Language: "en", - ThumbnailURL: "https://static-cdn.jtvnw.net/ttv-static/404_preview-440x248.jpg", - TagIDs: make([]string, 0), + ID: params.ID, + UserID: params.ToUserID, + UserLogin: params.ToUserName, + UserName: params.ToUserName, + GameID: "509658", + Type: "live", + Title: params.StreamTitle, + ViewerCount: util.RandomViewerCount(), + StartedAt: util.GetTimestamp().Format(time.RFC3339), + Language: "en", + ThumbnailURL: "https://static-cdn.jtvnw.net/ttv-static/404_preview-440x248.jpg", + TagIDs: make([]string, 0), + }, }, - }, } event, err = json.Marshal(body)