// Path: src/main/java/redis/clients/collections/SetStructure.java
// public interface SetStructure <T> {
// 
// 	Set<T> createSet(String key);
// 	
// 	void delete(String key);
// }
// 
// Path: src/main/java/redis/clients/collections/builder/RedisStrutureBuilder.java
// public class RedisStrutureBuilder {
// 
// 	public static <T> KeyValueBuilder<T> ofKeyValue(Jedis jedis,Class<T> clazz) {
// 		Objects.requireNonNull(jedis);
// 		Objects.requireNonNull(clazz, "The class must be specificed to do the RedisStruturebuilder");
// 		return new KeyValueBuilder<>(jedis, clazz);
// 	}
// 
// 	public static CountStructureBuilder ofCount(Jedis jedis) {
// 		Objects.requireNonNull(jedis);
// 		return new CountStructureBuilder(jedis);
// 	}
// 
// 	public static <T> ListStructureBuilder<T> ofList(Jedis jedis, Class<T> clazz) {
// 		Objects.requireNonNull(jedis);
// 		Objects.requireNonNull(clazz, "The class must be specificed to do the ListStruturebuilder");
// 		return new ListStructureBuilder<>(jedis, clazz);
// 	}
// 
// 	public static <T> SetStructureBuilder<T> ofSet(Jedis jedis, Class<T> clazz) {
// 		Objects.requireNonNull(jedis);
// 		Objects.requireNonNull(clazz, "The class must be specificed to do the SetStruturebuilder");
// 		return new SetStructureBuilder<>(jedis, clazz);
// 	}
// 	
// 	public static <T> MapStructureBuilder<T> ofMap(Jedis jedis, Class<T> clazz) {
// 		Objects.requireNonNull(jedis);
// 		Objects.requireNonNull(clazz, "The class must be specificed to do the MapStruturebuilder");
// 		return new MapStructureBuilder<>(jedis, clazz);
// 		
// 	}
// 
// 	public static <T> QueueStructureBuilder<T> ofQueue(Jedis jedis, Class<T> clazz) {
// 		Objects.requireNonNull(jedis);
// 		Objects.requireNonNull(clazz);
// 		return new QueueStructureBuilder<>(jedis, clazz);
// 	}
// 
// 	public static RankingStructureBuilder ofRanking(Jedis jedis) {
// 		Objects.requireNonNull(jedis);
// 		return new RankingStructureBuilder(jedis);
// 	}
// 
// }
// 
// Path: src/test/java/redis/clients/collections/model/User.java
// public class User {
// 
// 	private String nickName;
// 
// 	public User(String nickName) {
// 		this.setNickName(nickName);
// 		
// 	}
// 
// 	public String getNickName() {
// 		return nickName;
// 	}
// 
// 	public void setNickName(String nickName) {
// 		this.nickName = nickName;
// 	}
// 	
// 	
// }
// 
// Path: src/test/java/redis/clients/collections/util/RedisConnection.java
// public class RedisConnection {
// 
// 	public static final Jedis JEDIS;
// 	
// 	static{
// 	 JEDIS = new Jedis("localhost");
// 	}
// }


import java.util.Set;
import junit.framework.Assert;
import org.junit.After;
import org.junit.Before;
import org.junit.Test;
import redis.clients.collections.SetStructure;
import redis.clients.collections.builder.RedisStrutureBuilder;
import redis.clients.collections.model.User;
import redis.clients.collections.util.RedisConnection;
package redis.clients.collections;





public class SetStructureTest {

	private SetStructure<User> socialMediaUsers;
	private User userOtavioJava = new User("otaviojava");
	private User felipe = new User("ffrancesquini");
	
	@Before
	public void init() {
		socialMediaUsers = RedisStrutureBuilder.ofSet(RedisConnection.JEDIS, User.class).withNameSpace("socialMedia").build();
	}
	
	@Test
	public void shouldAddUsers() {
		Set<User> users = socialMediaUsers.createSet("twitter");
		Assert.assertTrue(users.isEmpty());
		users.add(userOtavioJava);
		Assert.assertTrue(users.size() == 1);
		
// Path: src/main/java/redis/clients/collections/SetStructure.java
// public interface SetStructure <T> {
// 
// 	Set<T> createSet(String key);
// 	
// 	void delete(String key);
// }
// 
// Path: src/main/java/redis/clients/collections/builder/RedisStrutureBuilder.java
// public class RedisStrutureBuilder {
// 
// 	public static <T> KeyValueBuilder<T> ofKeyValue(Jedis jedis,Class<T> clazz) {
// 		Objects.requireNonNull(jedis);
// 		Objects.requireNonNull(clazz, "The class must be specificed to do the RedisStruturebuilder");
// 		return new KeyValueBuilder<>(jedis, clazz);
// 	}
// 
// 	public static CountStructureBuilder ofCount(Jedis jedis) {
// 		Objects.requireNonNull(jedis);
// 		return new CountStructureBuilder(jedis);
// 	}
// 
// 	public static <T> ListStructureBuilder<T> ofList(Jedis jedis, Class<T> clazz) {
// 		Objects.requireNonNull(jedis);
// 		Objects.requireNonNull(clazz, "The class must be specificed to do the ListStruturebuilder");
// 		return new ListStructureBuilder<>(jedis, clazz);
// 	}
// 
// 	public static <T> SetStructureBuilder<T> ofSet(Jedis jedis, Class<T> clazz) {
// 		Objects.requireNonNull(jedis);
// 		Objects.requireNonNull(clazz, "The class must be specificed to do the SetStruturebuilder");
// 		return new SetStructureBuilder<>(jedis, clazz);
// 	}
// 	
// 	public static <T> MapStructureBuilder<T> ofMap(Jedis jedis, Class<T> clazz) {
// 		Objects.requireNonNull(jedis);
// 		Objects.requireNonNull(clazz, "The class must be specificed to do the MapStruturebuilder");
// 		return new MapStructureBuilder<>(jedis, clazz);
// 		
// 	}
// 
// 	public static <T> QueueStructureBuilder<T> ofQueue(Jedis jedis, Class<T> clazz) {
// 		Objects.requireNonNull(jedis);
// 		Objects.requireNonNull(clazz);
// 		return new QueueStructureBuilder<>(jedis, clazz);
// 	}
// 
// 	public static RankingStructureBuilder ofRanking(Jedis jedis) {
// 		Objects.requireNonNull(jedis);
// 		return new RankingStructureBuilder(jedis);
// 	}
// 
// }
// 
// Path: src/test/java/redis/clients/collections/model/User.java
// public class User {
// 
// 	private String nickName;
// 
// 	public User(String nickName) {
// 		this.setNickName(nickName);
// 		
// 	}
// 
// 	public String getNickName() {
// 		return nickName;
// 	}
// 
// 	public void setNickName(String nickName) {
// 		this.nickName = nickName;
// 	}
// 	
// 	
// }
// 
// Path: src/test/java/redis/clients/collections/util/RedisConnection.java
// public class RedisConnection {
// 
// 	public static final Jedis JEDIS;
// 	
// 	static{
// 	 JEDIS = new Jedis("localhost");
// 	}
// }


// Path: src/test/java/redis/clients/collections/SetStructureTest.java
import java.util.Set;
import junit.framework.Assert;
import org.junit.After;
import org.junit.Before;
import org.junit.Test;
import redis.clients.collections.SetStructure;
import redis.clients.collections.builder.RedisStrutureBuilder;
import redis.clients.collections.model.User;
import redis.clients.collections.util.RedisConnection;

package redis.clients.collections;





public class SetStructureTest {

	private SetStructure<User> socialMediaUsers;
	private User userOtavioJava = new User("otaviojava");
	private User felipe = new User("ffrancesquini");
	
	@Before
	public void init() {
		socialMediaUsers = RedisStrutureBuilder.ofSet(RedisConnection.JEDIS, User.class).withNameSpace("socialMedia").build();
	}
	
	@Test
	public void shouldAddUsers() {
		Set<User> users = socialMediaUsers.createSet("twitter");
		Assert.assertTrue(users.isEmpty());
		users.add(userOtavioJava);
		Assert.assertTrue(users.size() == 1);
		
		users.remove(userOtavioJava);