From ce3c4f26699166d6cb540d553a8c0ac5acfb745c Mon Sep 17 00:00:00 2001 From: Sepehr Date: Tue, 30 Apr 2024 22:48:34 +0200 Subject: [PATCH] Refactor phone number provider --- providers/phonenumber/phonenumber.go | 12 +++++++----- providers/phonenumber/phonenumber_test.go | 13 +++++++------ 2 files changed, 14 insertions(+), 11 deletions(-) diff --git a/providers/phonenumber/phonenumber.go b/providers/phonenumber/phonenumber.go index 98ca6d4..9f5179e 100644 --- a/providers/phonenumber/phonenumber.go +++ b/providers/phonenumber/phonenumber.go @@ -6,12 +6,14 @@ import ( "time" ) -// RandomPersianMobileNumber generates a Persian mobile phonenumber. -func RandomPersianMobileNumber() string { - prefixes := []string{"0912", "0913", "0914", "0915", "0916"} +var rng = rand.New(rand.NewSource(time.Now().UnixNano())) + +type phoneNumber struct { +} - src := rand.NewSource(time.Now().UnixNano()) - rng := rand.New(src) +// GeneratePersianMobileNumber generates a Persian mobile phone number. +func (phoneNumber) GeneratePersianMobileNumber() string { + prefixes := []string{"0912", "0913", "0914", "0915", "0916"} prefix := prefixes[rng.Intn(len(prefixes))] diff --git a/providers/phonenumber/phonenumber_test.go b/providers/phonenumber/phonenumber_test.go index 4bfe50e..aa7a364 100644 --- a/providers/phonenumber/phonenumber_test.go +++ b/providers/phonenumber/phonenumber_test.go @@ -4,12 +4,13 @@ import ( "testing" ) -// TestRandomPersianMobileNumber checks if the generated mobile phonenumber is correctly formatted. -func TestRandomPersianMobileNumber(t *testing.T) { - generatedNumber := RandomPersianMobileNumber() +// TestGeneratePersianMobileNumber checks if the generated mobile phone number is correctly formatted. +func TestGeneratePersianMobileNumber(t *testing.T) { + phoneNumber := &phoneNumber{} + generatedNumber := phoneNumber.GeneratePersianMobileNumber() if len(generatedNumber) != 11 { - t.Errorf("Expected mobile phonenumber length of 11, but got %d", len(generatedNumber)) + t.Errorf("Expected mobile phone number length of 11, but got %d", len(generatedNumber)) } validPrefixes := []string{"0912", "0913", "0914", "0915", "0916"} @@ -24,12 +25,12 @@ func TestRandomPersianMobileNumber(t *testing.T) { } if !found { - t.Errorf("Generated mobile phonenumber has an invalid prefix: %s", prefix) + t.Errorf("Generated mobile phone number has an invalid prefix: %s", prefix) } for _, c := range generatedNumber[4:] { if c < '0' || c > '9' { - t.Errorf("Generated mobile phonenumber contains non-digit characters: %s", generatedNumber) + t.Errorf("Generated mobile phone number contains non-digit characters: %s", generatedNumber) break } }