diff --git a/src/test/java/hibernateTest/entities/User.java b/src/test/java/hibernateTest/entities/User.java new file mode 100644 index 0000000..43f6644 --- /dev/null +++ b/src/test/java/hibernateTest/entities/User.java @@ -0,0 +1,59 @@ +package hibernateTest.entities; + +import java.util.ArrayList; +import java.util.List; + +public class User { + public String uId, uri, name, pw, iconUri; + public boolean login = true; + + public User(){ + + } + + public User(String name, String uId,String uri,String pw,String iconUri) { + setuId(uId); + setUri(uri); + setName(name); + setPw(pw); + setIconUri(iconUri); + } + + public String getuId() { + return uId; + } + public void setuId(String uId) { + this.uId = uId; + } + + public String getUri() { + return uri; + } + public void setUri(String uri) { + this.uri = uri; + } + public String getName() { + return name; + } + public void setName(String name) { + this.name = name; + } + public String getPw() { + return pw; + } + public void setPw(String pw) { + this.pw = pw; + } + public String getIconUri() { + return iconUri; + } + public void setIconUri(String iconUri) { + this.iconUri = iconUri; + } + public boolean getLogin() { + return login; + } + public void setLogin(boolean login) { + this.login = login; + } +} \ No newline at end of file diff --git a/src/test/java/hibernateTest/models/Users.java b/src/test/java/hibernateTest/models/Users.java new file mode 100644 index 0000000..e3edc3d --- /dev/null +++ b/src/test/java/hibernateTest/models/Users.java @@ -0,0 +1,188 @@ +package hibernateTest.models; + +import com.example.cosmos_serversb.entities.Token; +import com.example.cosmos_serversb.models.DeleteResult; + +import javax.inject.Singleton; +import java.util.Date; +import java.util.List; +import java.util.UUID; + +import hibernateTest.entities.Event; +import hibernateTest.entities.Group; +import hibernateTest.entities.Request; +import hibernateTest.entities.User; +import org.hibernate.Criteria; +import org.hibernate.SessionBuilder; +import org.hibernate.criterion.Restrictions; +import org.hibernate.Session; +import org.hibernate.SessionFactory; +import org.hibernate.boot.MetadataSources; +import org.hibernate.boot.registry.StandardServiceRegistry; +import org.hibernate.boot.registry.StandardServiceRegistryBuilder; + +@Singleton +public class Users { + private static Users theInstance = null; + private static SessionFactory sessionFactory; + + public static void setUp() { + // A SessionFactory is set up once for an application! + final StandardServiceRegistry registry = new StandardServiceRegistryBuilder() + .configure() // configures settings from hibernate.cfg.xml + .build(); + try { + sessionFactory = new MetadataSources( registry ).buildMetadata().buildSessionFactory(); + } + catch (Exception e) { + // The registry would be destroyed by the SessionFactory, but we had trouble building the SessionFactory + // so destroy it manually. + StandardServiceRegistryBuilder.destroy( registry ); + } + } + + public static void tearDown() { + try { + if (sessionFactory != null) { + sessionFactory.close(); + } + } catch (Exception e) { + System.out.println("Exception!"); + } + } + + private Users() { + } + + public static Users getInstance() { + if (theInstance == null) { + theInstance = new Users(); + } + return theInstance; + } + + public static String createToken(String uId) { + //Tokenを作成しuIdと関連付けしDBに保存し作成したTokenを返す + String token = UUID.randomUUID().toString(); + return token; + } + + public static String createUId() { + //uIdを作成し既存していないかチェック後DBに保存し作成したuIdを返す + String uId = UUID.randomUUID().toString(); + return uId; + } + + public static User createUser(String name, String pw, String iconImage) { + + Session session = sessionFactory.openSession(); + session.beginTransaction(); + //名前、パスワード、アイコンイメージを保存 + User testUser = new User("test",getInstance().createUId(), "http://test.com","testpw","http://localhost:8080/iconImage/b4bb7db0-cc0c-4ee1-816f-8304add12da8.jpg"); + System.out.println(testUser.getUri()); + session.save(testUser); + //hibernateテスト出力用 + List userResult = session.createQuery( "from User" ).list(); + for ( User user : (List) userResult ) { + System.out.println( "User (" + user.getuId() + ") : " + user.getUri() + ": " + user.getName()); + } + session.getTransaction().commit(); + session.close(); + + //testUser.token.add(getInstance().createToken(testUser.uId)); + //testUser.token.add(getInstance().createToken(testUser.uId)); + + return testUser; + } + + public static User setUser(String uId, String name, String pw, String iconImage) { + + Session session = sessionFactory.openSession(); + session.beginTransaction(); + User testUser = new User("test",getInstance().createUId(), "http://test.com", "testpw", "http://localhost:8080/iconImage/b4bb7db0-cc0c-4ee1-816f-8304add12da8.jpg"); + Criteria criteria = session.createCriteria(Request.class).add(Restrictions.eq("rId", "333")); + Request editRequest = (Request) criteria.uniqueResult(); + if(editRequest != null) { + editRequest.setProduct("Chocolate ice !!"); + session.update(editRequest); + } + session.getTransaction().commit(); + session.close(); + + //testUser.token.add(getInstance().createToken(testUser.uId)); + //testUser.token.add(getInstance().createToken(testUser.uId)); + + return testUser; + } + + public static User getUserById(String uId) { + //与えられたuIdのUser情報を返す + User editUser; + Session session = sessionFactory.openSession(); + session.beginTransaction(); + List userResult = session.createQuery("from User").list(); + for ( hibernateTest.entities.User user : (List) userResult){ + editUser = user; + if (editUser.getuId().equals(uId)){ + return editUser; + } + } + session.getTransaction().commit(); + session.close(); + + //testUser.token.add(getInstance().createToken(testUser.uId)); + //testUser.token.add(getInstance().createToken(testUser.uId)); + + return null; + } + + public static User getUserByToken(String token) { + //与えられたTokenに紐づくUser情報を返す + User testUser = new User("test", getInstance().createUId(), "http://test.com", "testpw", "http://localhost:8080/iconImage/b4bb7db0-cc0c-4ee1-816f-8304add12da8.jpg"); + + //testUser.token.add(getInstance().createToken(testUser.uId)); + //testUser.token.add(getInstance().createToken(testUser.uId)); + + return testUser; + } + + public static DeleteResult deleteUser(String uId) { + + Session session = sessionFactory.openSession(); + session = sessionFactory.openSession(); + session.beginTransaction(); + Request deleteRequest = (Request) session.load(Request.class, "222"); + if(deleteRequest != null){ + session.delete(deleteRequest); + } + session.getTransaction().commit(); + session.close(); + + return DeleteResult.SUCCESS; + } + + public static Token login(String uId) { + Token testtoken = new Token(getInstance().createToken(uId)); + //tokenを作成後値を返す + return testtoken;//testToken + } + + public static DeleteResult logout(String token) { + if(Users.getInstance().getUserByToken(token).uId == null) { + return DeleteResult.FAILURE; + }else{ + //Users.getInstance().getUserByToken(token).token.remove(Users.getInstance().getUserByToken(token).token.indexOf(token)); + return DeleteResult.SUCCESS; + } + } + + public static boolean checkToken(String uId, String token) { + //与えられたtokenとUserのtokenを比較し結果を返す + return true; + } + + public static boolean checkPassword(String uId, String pw) { + //与えられたパスワードとUserのパスワードを比較し結果を返す + return true; + } +} diff --git a/src/test/java/hibernateTest/models/UsersMain.java b/src/test/java/hibernateTest/models/UsersMain.java new file mode 100644 index 0000000..7fd848e --- /dev/null +++ b/src/test/java/hibernateTest/models/UsersMain.java @@ -0,0 +1,13 @@ +package hibernateTest.models; + +import hibernateTest.models.*; + +//このメインクラスを実行すると、Hibernateのテストが行えます。 +public class UsersMain { + public static void main(String args[]){ + Users.setUp(); + Users.createUser("test","1234","http://localhost:8080/iconImage/b4bb7db0-cc0c-4ee1-816f-8304add12da8.jpg"); + Users.getUserById("1234"); + Users.tearDown(); + } +} diff --git a/src/test/resources/User.hbm.xml b/src/test/resources/User.hbm.xml new file mode 100644 index 0000000..d59a58b --- /dev/null +++ b/src/test/resources/User.hbm.xml @@ -0,0 +1,25 @@ + + + + + + + + + + + + + + + + + + \ No newline at end of file