diff --git a/internal/events/types/hype_train/hype_train_event.go b/internal/events/types/hype_train/hype_train_event.go index 330a7e04..c98e639e 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 { @@ -64,12 +65,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", @@ -95,7 +96,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 { @@ -120,7 +121,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{ { @@ -129,7 +130,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/events/types/streamup/streamup.go b/internal/events/types/streamup/streamup.go index 311ecf8e..f0f619c8 100644 --- a/internal/events/types/streamup/streamup.go +++ b/internal/events/types/streamup/streamup.go @@ -79,7 +79,7 @@ func (e Event) GenerateEvent(params events.MockEventParameters) (events.MockEven GameID: "509658", Type: "live", Title: params.StreamTitle, - ViewerCount: 1337, + ViewerCount: util.RandomViewerCount(), StartedAt: util.GetTimestamp().Format(time.RFC3339), Language: "en", ThumbnailURL: "https://static-cdn.jtvnw.net/ttv-static/404_preview-440x248.jpg", 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) +}