Skip to content

Instantly share code, notes, and snippets.

@fcojperez
Last active August 29, 2015 14:22
Show Gist options
  • Save fcojperez/e608ab16bf13fec019fb to your computer and use it in GitHub Desktop.
Save fcojperez/e608ab16bf13fec019fb to your computer and use it in GitHub Desktop.
/**
* A collection of utils to help testing
*/
class TestUtil {
Random random = new Random()
/**
* Create a Random String with n size y n == 0 theng return a blank string
* @param int n, size
* @return
*/
String getRandomText( int n) {
String alphabet = (('A'..'Z')+('a'..'z')+('0'..'9')).join()
if(n > 0){
random.with {
(1..n).collect { alphabet[ random.nextInt( alphabet.length() ) ] }.join()
}
}else{
return ''
}
}
/**
* Generate a random Date between (01/01/year) and (01/01/year + 365) where year it is a param
* @param int year
* @return Date
*/
def getRandomDate(int year) {
Date iniDate = Date.parse('dd/MM/yyyy','01/01/' + year)
int range = 365
iniDate.plus(random.nextInt(range+1))
}
/**
* Generate a random email based on a list of domain and random text
* @return
*/
String getRandomEmail(){
String[] domains = new String[3]
def mail = this.getRandomText()
domains = ['mydomain.com', 'mydomain.org', 'mydomain.info']
def selection = random.nextInt(domains.size())
return mail+'@'+domains[selection]
}
/**
* Create a string based on lorem ipsum text and with size equal or less than paramater
* @param size
* @return
*/
def getLoremIpsun(int size){
def lorem_ipsun = '''Lorem ipsum dolor sit amet, consectetur adipiscing elit. Fusce ac dolor felis. Quisque sed mollis urna, vel convallis odio. Aliquam finibus erat ut nunc lobortis, et ullamcorper nibh semper. Proin lorem est, imperdiet vel interdum at, accumsan eu ligula. Proin tempus facilisis pretium. Ut pretium, eros sed semper faucibus, lorem risus egestas nunc, eu venenatis massa elit vel diam. Cras venenatis leo id odio fringilla, vel tempus libero dictum. Maecenas ac nunc dui. Nulla facilisi. Ut mauris urna, faucibus at ante vitae, egestas porttitor lorem. In vel feugiat turpis. Vestibulum varius elit ac nisl volutpat porta. Suspendisse potenti. Donec consectetur interdum risus sit amet placerat.
Phasellus a malesuada augue, eget tempor risus. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos. Nam cursus, justo vitae sollicitudin tristique, nulla nisl volutpat risus, in feugiat risus neque sit amet ante. Vivamus posuere mauris et euismod auctor. Sed vehicula, orci vitae ultrices bibendum, magna metus accumsan dui, id semper tellus metus ac nunc. Fusce bibendum odio scelerisque, faucibus nisl vitae, euismod sapien. Nam purus augue, dapibus id enim ac, congue imperdiet dolor. Mauris interdum metus urna, eleifend malesuada velit rutrum in. Curabitur sed dui in enim facilisis finibus ac ultrices est. Maecenas congue fringilla tortor in tempus. Nullam feugiat dolor diam, et blandit orci sagittis nec. Mauris eget nisl erat. Nam consequat sagittis ante, id tincidunt nisl malesuada eu. Proin nec vehicula eros. Ut et lorem quam.
Cras consequat, justo a elementum dapibus, metus sapien rhoncus enim, eu laoreet magna risus a dolor. Nam nec felis scelerisque, scelerisque lorem id, tempus metus. Vestibulum blandit tempus metus vitae auctor. Pellentesque laoreet viverra tincidunt. Morbi rhoncus lectus ligula, sed mattis ipsum pharetra ut. Ut nec ultricies lacus, sit amet interdum mauris. Aenean non auctor risus. Quisque velit erat, semper et mauris vitae, malesuada finibus tellus. Curabitur diam quam, mattis et varius vel, tincidunt suscipit lorem.
Vestibulum accumsan tempus maximus. Vestibulum cursus leo nec dolor hendrerit tristique. Suspendisse et erat vehicula, lacinia massa et, cursus dolor. Ut nunc sem, ultricies quis placerat sed, scelerisque vel metus. Morbi auctor augue at commodo consectetur. Ut fringilla posuere elit ut dapibus. Morbi ornare tincidunt eros. Nulla pharetra mauris at diam gravida hendrerit. Ut at commodo nulla, ac facilisis lacus. Nunc volutpat consequat imperdiet. Sed facilisis diam sit amet urna convallis imperdiet. Suspendisse bibendum est tincidunt risus sollicitudin efficitur. Nunc placerat faucibus interdum. Vivamus dignissim lacinia leo sed tincidunt. Aliquam elementum iaculis leo vestibulum dapibus.
Aliquam ultricies nibh id quam pulvinar, sed pretium dolor iaculis. Maecenas sit amet convallis ligula. Pellentesque congue diam id elementum sollicitudin. Morbi auctor, sem ac pellentesque tincidunt, erat neque elementum nunc, ut vestibulum mauris ante faucibus mauris. Pellentesque volutpat rhoncus tempor. Sed eu lacinia ligula, sed vulputate purus. Praesent ipsum dolor, sollicitudin vel congue at, vehicula quis ipsum. Nulla porta sollicitudin laoreet. Fusce dolor nisl, fringilla dignissim tortor sed, vestibulum placerat quam. Duis at felis venenatis, consectetur est at, tincidunt mi. Integer varius est non nisi tincidunt, sit amet sagittis dui blandit. Suspendisse lacinia cursus ex et posuere. Nulla facilisi.'''
def result = ''
lorem_ipsun.tokenize('\n').each{ line ->
"$line".tokenize(' ').each{ word ->
if(result.size() + "$word".size() + 1 < size){
result += "$word" + ' '
}
}
if(result.size() < size){
result += '\n'
}
}
return result
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment