Skip to content

Commit

Permalink
Refactor phone number provider
Browse files Browse the repository at this point in the history
  • Loading branch information
sepisoltani committed Apr 30, 2024
1 parent 0b4e3f2 commit ce3c4f2
Show file tree
Hide file tree
Showing 2 changed files with 14 additions and 11 deletions.
12 changes: 7 additions & 5 deletions providers/phonenumber/phonenumber.go
Original file line number Diff line number Diff line change
Expand Up @@ -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))]

Expand Down
13 changes: 7 additions & 6 deletions providers/phonenumber/phonenumber_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -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"}
Expand All @@ -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
}
}
Expand Down

0 comments on commit ce3c4f2

Please sign in to comment.