https://github.com/henryhamon/cosfaker
Fake data for Intersystems Caché
https://github.com/henryhamon/cosfaker
cache-objectscript cos ensemble faker intersystems intersystems-cache iris unittest unittesting
Last synced: about 20 hours ago
JSON representation
Fake data for Intersystems Caché
- Host: GitHub
- URL: https://github.com/henryhamon/cosfaker
- Owner: henryhamon
- License: mit
- Created: 2017-01-12T17:14:46.000Z (about 9 years ago)
- Default Branch: master
- Last Pushed: 2021-07-03T17:15:07.000Z (over 4 years ago)
- Last Synced: 2023-04-11T05:36:08.630Z (almost 3 years ago)
- Topics: cache-objectscript, cos, ensemble, faker, intersystems, intersystems-cache, iris, unittest, unittesting
- Language: ObjectScript
- Size: 800 KB
- Stars: 8
- Watchers: 3
- Forks: 6
- Open Issues: 3
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# cosFaker [](https://github.com/henryhamon/cosfaker/issues) [](https://raw.githubusercontent.com/henryhamon/cosfaker/master/LICENSE)
Generate massive amounts of fake data for Intersystems IRIS
The language of data is according to configuration of your Caché (Now works with Pt-Br and En-Us(Default)).
## Valid Types
* Address (Street, Latitude, Longitude, City, State, Capital, Country, Street Suffix, Street Prefix, Postcode, Secondary Address)
* App (Function name)
* Coffee (Blend name, Variety, Notes, Origin)
* Color (Hexadecimal, Name, RGB)
* Commerce (Price, CNPJ, Color, Product, Product Name, Promotion Code)
* Company (Profession, Industry)
* Dates (Forward, Backward)
* DragonBall (Character)
* File (Filename, Extension, MimeType)
* Finance (Amount, Credit Card, Bitcoin Address)
* Game (Card, Mortal Kombat, Street Fighter)
* Internet (Username, Email, Protocol, Domain Word, Domain Name, Avatar, Url, Slug, IPV4, IPV6,MAC Address)
* Job (Title, Skills, Field)
* Lorem (Words, Sentences, Paragraphs, Lines, Text, Hipster)
* Name (First name, Last Name, Full Name, Suffix)
* Person (CPF (Brazilian ID))
* Phone (Area code, Phone number, Cell phone)
* Pokemon (Pokemons)
* StarWars (Character, Droid, Planet, Quote, Specie, Vehicle, Wookie word, Wookie Sentence)
* UFC (Category, Fighter, Fighter by category, Nickname)
## Instalation
To install cosFaker, you just need to import the package cosFaker.vX.X.X.xml file.
You can go to Management Portal -> System Explorer -> Classes -> Import and select the XML file or just drag the file over Studio.
Also, if you like terminal like me, execute:
```
Do $system.OBJ.Load("yourpath/cosFaker.vX.X.X.xml","ck")
```
### Docker ###
To install using Docker. Follow this instructions:
Open terminal and clone/git pull the repo into any local directory
```
$ git clone https://github.com/henryhamon/cosfaker.git
```
Open the terminal in this directory and run:
```
$ docker-compose build
```
Run the IRIS container with your project:
```
$ docker-compose up -d
```
## How to Run the Application
Open InterSystems IRIS terminal:
```
$ docker-compose exec iris iris session iris
USER>zn "IRISAPP"
IRISAPP>Write ##class(cosFaker.Name).FullName()
```
## Usage
### On Populate
You can use on Populate event
```cos
Method OnPopulate() As %Status [ ServerOnly = 1 ]
{
Set ..Login = ##class(cosFaker.Internet).UserName("John","Doe")
Set ..Url = ##class(cosFaker.Internet).DomainWord()
}
```
Or on a simple Set
```cos
Set ..Name = ##class(cosFaker.Name).FullName()
```
### SQL Class
You can generate data directly on a table
```cos
Do ##class(cosFaker.SQL).Insert("Sample_Data.Clients","City,Name,Salary","city SC,name 2,price 1000 2000 2 R$",2)
//Same as:
//INSERT INTO Sample_Data.Clients (City,Name,Salary) VALUES ('Celso Ramos','Luiggi Dias Nunes Saraiva','R$1654.30')
//INSERT INTO Sample_Data.Clients (City,Name,Salary) VALUES ('Nova Veneza','Fabiano da Costa','R$1255.13')
```
### JSON Class
You can generate data on JSON string or in an object, only passing a JSON string as shown above.
Examples showing JSON strings populated:
```cos
Write ##class(cosFaker.JSON).GetDataJSONFromJSON("{Nome:'name 2',Cidade:'city SC',CPF:'cpf 1',Description:'slug ""person sample example"" ;'}")
// {
// "CPF":"661.254.048-62",
// "Cidade":"Brunópolis",
// "Nome":"Jonathan Ribeiro Ribeiro",
// "Description":"person;sample;example"
// }
```
```cos
//Suppose you want a person with name, street, phone and his 3 preferred Pokemons
Write ##class(cosFaker.JSON).GetDataJSONFromJSON("{person:['name','street','phone','3 pokemon']}")
// {"person":
// [
// "Yango Nogueira",
// "Viela General Sirineu Nogueira",
// "(44) 0968-2926",
// ["Bayleef","Haunter","Golurk"]
// ]
// }
```
And example showing Object populated:
```cos
Set person = ##class(cosFaker.JSON).GetDataOBJFromJSON("{name:'name 2',birth:'date',profession:'profession',pokemons:'3 pokemon'}",.tSC)
Write person.name
// Flávio Silveira
Set listOfPokemons = person.pokemons
Write listOfPokemons.GetAt(1)
// Diancie
Write listOfPokemons.Count()
// 3
```