func MakeGenericFile(eventCount, checksumCount int, objIdentifier string) *models.GenericFile { if objIdentifier == "" { objIdentifier = RandomObjectIdentifier() } objIdParts := strings.Split(objIdentifier, "/") inst := objIdParts[0] objName := objIdParts[1] fileIdentifier := RandomFileIdentifier(objIdentifier) _uuid := uuid.NewV4() checksums := make([]*models.Checksum, checksumCount) events := make([]*models.PremisEvent, eventCount) for i := 0; i < checksumCount; i++ { checksums[i] = MakeChecksum() } for i := 0; i < eventCount; i++ { events[i] = MakePremisEvent() } return &models.GenericFile{ Id: rand.Intn(50000) + 1, Identifier: fileIdentifier, IntellectualObjectId: rand.Intn(50000) + 1, IntellectualObjectIdentifier: objIdentifier, FileFormat: RandomFileFormat(), URI: fmt.Sprintf("%s/%s.%s/%s", constants.S3UriPrefix, constants.ReceiveTestBucketPrefix, inst, objName), Size: int64(rand.Intn(5000000) + 1), FileCreated: RandomDateTime(), FileModified: RandomDateTime(), CreatedAt: RandomDateTime(), UpdatedAt: RandomDateTime(), Checksums: checksums, PremisEvents: events, IngestLocalPath: fmt.Sprintf("/mnt/aptrust/data/%s", fileIdentifier), IngestMd5: fake.CharactersN(32), IngestMd5GeneratedAt: RandomDateTime(), IngestMd5VerifiedAt: RandomDateTime(), IngestSha256: fake.CharactersN(64), IngestSha256GeneratedAt: RandomDateTime(), IngestUUID: _uuid.String(), IngestUUIDGeneratedAt: RandomDateTime(), IngestStorageURL: fmt.Sprintf("https://storage.aws/%s", _uuid.String()), IngestStoredAt: RandomDateTime(), IngestReplicationURL: fmt.Sprintf("https://replication.aws/%s", _uuid.String()), IngestReplicatedAt: RandomDateTime(), IngestPreviousVersionExists: false, IngestNeedsSave: true, IngestErrorMessage: "", } }
// MakeMessageDigest creates a DPN MessageDigest object for testing. func MakeMessageDigest(bagUUID, node string) *models.MessageDigest { return &models.MessageDigest{ Bag: bagUUID, Algorithm: "sha256", Node: node, Value: fake.CharactersN(64), CreatedAt: time.Now().UTC(), } }
func genFakeData(v *Value) interface{} { if len(v.Tags) == 0 { return v.Data } typ, ok := v.Tags.Get("type") if !ok { return v.Data } switch typ { case fieldTags.Brand: return fake.Brand() case fieldTags.Character: return fake.Character() case fieldTags.Characters: return fieldTags.Characters case fieldTags.CharactersN: max := 5 if m, err := v.Tags.Int("max"); err == nil { max = m } return fake.CharactersN(max) case fieldTags.City: return fake.City() case fieldTags.Color: return fake.Color() case fieldTags.Company: return fake.Company() case fieldTags.Continent: return fake.Continent() case fieldTags.Country: return fake.Country() case fieldTags.CreditCardNum: vendor, _ := v.Tags.Get("vendor") fake.CreditCardNum(vendor) case fieldTags.Currency: fake.Currency() case fieldTags.CurrencyCode: fake.CurrencyCode() case fieldTags.Day: return fake.Day() case fieldTags.Digits: return fake.Digits() case fieldTags.DigitsN: max := 5 if m, err := v.Tags.Int("max"); err == nil { max = m } return fake.DigitsN(max) case fieldTags.DomainName: return fake.DomainName() case fieldTags.DomainZone: return fake.DomainZone() case fieldTags.EmailAddress: return fake.EmailAddress() case fieldTags.EmailBody: return fake.EmailBody() case fieldTags.FemaleFirstName: return fake.FemaleFirstName() case fieldTags.FemaleFullName: return fake.FemaleFullName() case fieldTags.FemaleFullNameWithPrefix: return fake.FemaleFullNameWithPrefix() case fieldTags.FemaleFullNameWithSuffix: return fake.FemaleFullNameWithSuffix() case fieldTags.FemaleLastName: return fake.FemaleLastName() case fieldTags.FemaleLastNamePratronymic: return fake.FemalePatronymic() case fieldTags.FirstName: return fake.FirstName() case fieldTags.FullName: return fake.FullName() case fieldTags.FullNameWithPrefix: return fake.FullNameWithPrefix() case fieldTags.FullNameWithSuffix: return fake.FullNameWithSuffix() case fieldTags.Gender: return fake.Gender() case fieldTags.GenderAbrev: return fake.GenderAbbrev() case fieldTags.HexColor: return fake.HexColor() case fieldTags.HexColorShort: return fake.HexColorShort() case fieldTags.IPv4: return fake.IPv4() case fieldTags.Industry: return fake.Industry() case fieldTags.JobTitle: return fake.JobTitle() case fieldTags.Language: return fake.Language() case fieldTags.LastName: return fake.LastName() case fieldTags.LatitudeDegrees: return fake.LatitudeDegress() case fieldTags.LatitudeDirection: return fake.LatitudeDirection() case fieldTags.LatitudeMinutes: return fake.LatitudeMinutes() case fieldTags.LatitudeSeconds: return fake.LatitudeSeconds() case fieldTags.Latitude: return fake.Latitute() case fieldTags.LongitudeDegrees: return fake.LongitudeDegrees() case fieldTags.LongitudeDirection: return fake.LongitudeDirection() case fieldTags.LongitudeMinutes: return fake.LongitudeMinutes() case fieldTags.LongitudeSeconds: return fake.LongitudeSeconds() case fieldTags.MaleFirstName: return fake.MaleFirstName() case fieldTags.MaleFullNameWithPrefix: return fake.MaleFullNameWithPrefix() case fieldTags.MaleFullNameWithSuffix: return fake.MaleFullNameWithSuffix() case fieldTags.MaleLastName: return fake.MaleLastName() case fieldTags.MalePratronymic: return fake.MalePatronymic() case fieldTags.Model: return fake.Model() case fieldTags.Month: return fake.Month() case fieldTags.MonthNum: return fake.MonthNum() case fieldTags.MonthShort: return fake.MonthShort() case fieldTags.Paragraph: return fake.Paragraph() case fieldTags.Patagraphs: return fake.Paragraphs() case fieldTags.PatagraphsN: max := 5 if m, err := v.Tags.Int("max"); err == nil { max = m } return fake.ParagraphsN(max) case fieldTags.Password: var ( atLeast = 5 atMost = 8 allowUpper, allowNumeric, allowSpecial = true, true, true ) if least, err := v.Tags.Int("at_least"); err == nil { atLeast = least } if most, err := v.Tags.Int("at_most"); err == nil { atMost = most } if upper, err := v.Tags.Bool("upper"); err == nil { allowUpper = upper } if numeric, err := v.Tags.Bool("numeric"); err == nil { allowNumeric = numeric } if special, err := v.Tags.Bool("special"); err == nil { allowSpecial = special } return fake.Password(atLeast, atMost, allowUpper, allowNumeric, allowSpecial) case fieldTags.Patronymic: return fake.Patronymic() case fieldTags.Phone: return fake.Phone() case fieldTags.Product: return fake.Product() case fieldTags.ProductName: return fake.ProductName() case fieldTags.Sentence: return fake.Sentence() case fieldTags.Sentences: return fake.Sentence() case fieldTags.SentencesN: max := 5 if m, err := v.Tags.Int("max"); err == nil { max = m } return fake.SentencesN(max) case fieldTags.SimplePassWord: return fake.SimplePassword() case fieldTags.State: return fake.State() case fieldTags.StateAbbrev: return fake.StateAbbrev() case fieldTags.Street: return fake.Street() case fieldTags.StreetAddress: return fake.StreetAddress() case fieldTags.Title: return fake.Title() case fieldTags.TopLevelDomain: return fake.TopLevelDomain() case fieldTags.UserName: return fake.UserName() case fieldTags.WeekDay: return fake.WeekDay() case fieldTags.WeekDayNum: return fake.WeekdayNum() case fieldTags.WeekDayShort: return fake.WeekDayShort() case fieldTags.Word: return fake.Word() case fieldTags.Words: return fake.Words() case fieldTags.WordsN: max := 5 if m, err := v.Tags.Int("max"); err == nil { max = m } return fake.WordsN(max) case fieldTags.Year: //return fake.Year() case fieldTags.Zip: return fake.Zip() } return v.Data }
// CharactersN generates n random characters in the given language func (s *Stabber) CharactersN(lang string, n int) string { setLang(lang) return fake.CharactersN(n) }
func TestLoremIpsum(t *testing.T) { for _, lang := range fake.GetLangs() { fake.SetLang(lang) v := fake.Character() if v == "" { t.Errorf("Character failed with lang %s", lang) } v = fake.CharactersN(2) if v == "" { t.Errorf("CharactersN failed with lang %s", lang) } v = fake.Characters() if v == "" { t.Errorf("Characters failed with lang %s", lang) } v = fake.Word() if v == "" { t.Errorf("Word failed with lang %s", lang) } v = fake.WordsN(2) if v == "" { t.Errorf("WordsN failed with lang %s", lang) } v = fake.Words() if v == "" { t.Errorf("Words failed with lang %s", lang) } v = fake.Title() if v == "" { t.Errorf("Title failed with lang %s", lang) } v = fake.Sentence() if v == "" { t.Errorf("Sentence failed with lang %s", lang) } v = fake.SentencesN(2) if v == "" { t.Errorf("SentencesN failed with lang %s", lang) } v = fake.Sentences() if v == "" { t.Errorf("Sentences failed with lang %s", lang) } v = fake.Paragraph() if v == "" { t.Errorf("Paragraph failed with lang %s", lang) } v = fake.ParagraphsN(2) if v == "" { t.Errorf("ParagraphsN failed with lang %s", lang) } v = fake.Paragraphs() if v == "" { t.Errorf("Paragraphs failed with lang %s", lang) } } }
func TestLoremIpsum(t *testing.T) { for _, lang := range fake.GetLangs() { fake.SetLang(lang) v := fake.Character() if v == "" { t.Errorf("Character failed with lang %s", lang) } v = fake.CharactersN(2) if v == "" { t.Errorf("CharactersN failed with lang %s", lang) } v = fake.Characters() if v == "" { t.Errorf("Characters failed with lang %s", lang) } v = fake.Word() if v == "" { t.Errorf("Word failed with lang %s", lang) } v = fake.WordsN(2) if v == "" { t.Errorf("WordsN failed with lang %s", lang) } v = fake.Words() if v == "" { t.Errorf("Words failed with lang %s", lang) } v = fake.Title() if v == "" { t.Errorf("Title failed with lang %s", lang) } v = fake.Sentence() if v == "" { t.Errorf("Sentence failed with lang %s", lang) } v = fake.SentencesN(2) if v == "" { t.Errorf("SentencesN failed with lang %s", lang) } v = fake.Sentences() if v == "" { t.Errorf("Sentences failed with lang %s", lang) } v = fake.Paragraph() if v == "" { t.Errorf("Paragraph failed with lang %s", lang) } v = fake.ParagraphsN(2) if v == "" { t.Errorf("ParagraphsN failed with lang %s", lang) } v = fake.Paragraphs() if v == "" { t.Errorf("Paragraphs failed with lang %s", lang) } vs := fake.WordsNUnique(251) if len(vs) != 251 { t.Errorf("WordsNUnique failed with lang %s", lang) } lw := "" for n, w := range vs { if w == lw { t.Errorf("Duplicate words found") } if w == "" { t.Errorf("Word %d is empty", n) continue } lw = w } } }
func genFakeData(v *Value, kind string) interface{} { if len(v.Tags) == 0 { return v.Data } typ, ok := v.Tags["type"] if !ok { return v.Data } switch typ { case fieldTags.Brand: return fake.Brand() case fieldTags.Character: return fake.Character() case fieldTags.Characters: return fieldTags.Characters case fieldTags.CharactersN: return fake.CharactersN(5) case fieldTags.City: return fake.City() case fieldTags.Color: return fake.Color() case fieldTags.Company: return fake.Company() case fieldTags.Continent: return fake.Continent() case fieldTags.Country: return fake.Country() case fieldTags.CreditCardNum: fake.CreditCardNum("vendor") case fieldTags.Currency: fake.Currency() case fieldTags.CurrencyCode: fake.CurrencyCode() case fieldTags.Day: return fake.Day() case fieldTags.Digits: return fake.Digits() case fieldTags.DigitsN: return fake.DigitsN(5) case fieldTags.DomainName: return fake.DomainName() case fieldTags.DomainZone: return fake.DomainZone() case fieldTags.EmailAddress: return fake.EmailAddress() case fieldTags.EmailBody: return fake.EmailBody() case fieldTags.FemaleFirstName: return fake.FemaleFirstName() case fieldTags.FemaleFullName: return fake.FemaleFullName() case fieldTags.FemaleFullNameWithPrefix: return fake.FemaleFullNameWithPrefix() case fieldTags.FemaleFullNameWithSuffix: return fake.FemaleFullNameWithSuffix() case fieldTags.FemaleLastName: return fake.FemaleLastName() case fieldTags.FemaleLastNamePratronymic: return fake.FemalePatronymic() case fieldTags.FirstName: return fake.FirstName() case fieldTags.FullName: return fake.FullName() case fieldTags.FullNameWithPrefix: return fake.FullNameWithPrefix() case fieldTags.FullNameWithSuffix: return fake.FullNameWithSuffix() case fieldTags.Gender: return fake.Gender() case fieldTags.GenderAbrev: return fake.GenderAbbrev() case fieldTags.HexColor: return fake.HexColor() case fieldTags.HexColorShort: return fake.HexColorShort() case fieldTags.IPv4: return fake.IPv4() case fieldTags.Industry: return fake.Industry() case fieldTags.JobTitle: return fake.JobTitle() case fieldTags.Language: return fake.Language() case fieldTags.LastName: return fake.LastName() case fieldTags.LatitudeDegrees: return fake.LatitudeDegress() case fieldTags.LatitudeDirection: return fake.LatitudeDirection() case fieldTags.LatitudeMinutes: return fake.LatitudeMinutes() case fieldTags.LatitudeSeconds: return fake.LatitudeSeconds() case fieldTags.Latitude: return fake.Latitute() case fieldTags.LongitudeDegrees: return fake.LongitudeDegrees() case fieldTags.LongitudeDirection: return fake.LongitudeDirection() case fieldTags.LongitudeMinutes: return fake.LongitudeMinutes() case fieldTags.LongitudeSeconds: return fake.LongitudeSeconds() case fieldTags.MaleFirstName: return fake.MaleFirstName() case fieldTags.MaleFullNameWithPrefix: return fake.MaleFullNameWithPrefix() case fieldTags.MaleFullNameWithSuffix: return fake.MaleFullNameWithSuffix() case fieldTags.MaleLastName: return fake.MaleLastName() case fieldTags.MalePratronymic: return fake.MalePatronymic() case fieldTags.Model: return fake.Model() case fieldTags.Month: return fake.Month() case fieldTags.MonthNum: return fake.MonthNum() case fieldTags.MonthShort: return fake.MonthShort() case fieldTags.Paragraph: return fake.Paragraph() case fieldTags.Patagraphs: return fake.Paragraphs() case fieldTags.PatagraphsN: return fake.ParagraphsN(4) case fieldTags.Password: //return fake.Password() case fieldTags.Patronymic: return fake.Patronymic() case fieldTags.Phone: return fake.Phone() case fieldTags.Product: return fake.Product() case fieldTags.ProductName: return fake.ProductName() case fieldTags.Sentence: return fake.Sentence() case fieldTags.Sentences: return fake.Sentence() case fieldTags.SentencesN: return fake.SentencesN(4) case fieldTags.SimplePassWord: return fake.SimplePassword() case fieldTags.State: return fake.State() case fieldTags.StateAbbrev: return fake.StateAbbrev() case fieldTags.Street: return fake.Street() case fieldTags.StreetAddress: return fake.StreetAddress() case fieldTags.Title: return fake.Title() case fieldTags.TopLevelDomain: return fake.TopLevelDomain() case fieldTags.UserName: return fake.UserName() case fieldTags.WeekDay: return fake.WeekDay() case fieldTags.WeekDayNum: return fake.WeekdayNum() case fieldTags.WeekDayShort: return fake.WeekDayShort() case fieldTags.Word: return fake.Word() case fieldTags.Words: return fake.Words() case fieldTags.WordsN: return fake.WordsN(4) case fieldTags.Year: //return fake.Year() case fieldTags.Zip: return fake.Zip() } return v.Data }