package com.springNeo4j.test;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertNotNull;
import static org.junit.Assert.assertNull;
import java.util.Date;
import java.util.HashSet;
import java.util.Iterator;
import java.util.Optional;
import java.util.Set;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
import com.springNeo4j.domain.Book;
import com.springNeo4j.domain.Person;
import com.springNeo4j.domain.relationships.WriteOf;
import com.springNeo4j.repository.BookRepository;
import com.springNeo4j.repository.PersonRepository;
/**
* @function
* @author lyf3312
* @date 2019年1月14日 下午4:19:49
*
*/
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration({ "classpath*:/spring/neo4j-context.xml" })
public class BookRepositoryTest {
private static String TEST_PERSON_NAME_1 = "Person1";
private static String TEST_BOOK_NAME_1 = "Book1";
private static String TEST_BOOK_NAME_2 = "Book2";
@Autowired
private PersonRepository pr;
@Autowired
private BookRepository br;
@Test
public void testCRUDBook() {
/*
//添加
System.out.println("okk");
System.out.println(pr+"---"+br);
Book book = new Book();
book.setName(TEST_BOOK_NAME_1);
book = br.save(book);
assertNotNull(book);
assertNotNull(book.getId());
assertEquals(TEST_BOOK_NAME_1, book.getName());
System.out.println(book.getId());
*/
/*
//更新
//44为新添加节点的id
Long id = new Long(44);
Optional<Book> book = br.findById(id);
if(book.isPresent()) {
Book bk = book.get();
bk.setName(TEST_BOOK_NAME_2);
br.save(bk);
System.out.println("更新ok");
}else {
System.out.println(id +" Node not exists!");
}
*/
/*
//删除
Long id = new Long(44);
Optional<Book> book = br.findById(id);
if(book.isPresent()) {
br.delete(book.get());
System.out.println("delete ok");
}else {
System.out.println(id +" Node not exists!");
}
*/
}
@Test
public void testCRUDRelationships() {
/* //创建人与书Node
Person p = new Person();
p.setName("abc");
p = pr.save(p);
Book b = new Book();
b.setName(TEST_BOOK_NAME_1);
b = br.save(b);
//书与人其中一方添加对应记录即可。
//判断此书的读者是否为空,如果为空则创建读者集合,否则在原有基础上加入新读者到readers集合
Optional<Book> bk = br.findById(b.getId());
if(bk.isPresent()) {
Book old_bk = bk.get();
if(null !=old_bk.getReaders()) {
old_bk.getReaders().add(p);
}else {
Set<Person> readers = new HashSet<Person>();
readers.add(p);
b.setReaders(readers);
}
}else {
System.out.println("node not dose exist!");
}
br.save(b);
assertNotNull(b);
assertNotNull(b.getReaders());
assertEquals(1, b.getReaders().size());
*/
/*
//在book id 为7 的node,再增加一个读者,同理可为某人再增加一本看过的书。
Person p2 = new Person();
p2.setName("yolo");
pr.save(p2);
Book old_bk = null;
Optional<Book> bk = br.findById((long)7);
if(bk.isPresent()) {
old_bk = bk.get();
if(null !=old_bk.getReaders()) {
old_bk.getReaders().add(p2);
}else {
Set<Person> readers = new HashSet<Person>();
readers.add(p2);
old_bk.setReaders(readers);
}
br.save(old_bk);
}else {
System.out.println("node not dose exist!");
}
*/
//刪除
Book old_bk = null;
Optional<Book> bk = br.findById((long)7);
if(bk.isPresent()) {
old_bk = bk.get();
old_bk.setReaders(null);
old_bk = br.save(old_bk);
Iterator<Person> ps = pr.findAll().iterator();
while(ps.hasNext()) {
Person old_ps = ps.next();
System.out.println(old_ps.getName());
old_ps.getBooks().remove(old_bk);
pr.save(old_ps);
}
}else {
System.out.println("node not dose exist!");
}
}
@Test
public void testRichRelationships() {
Date timestamp = new Date();
Person person1 = new Person();
person1.setName(TEST_PERSON_NAME_1);
person1 = pr.save(person1);
// Test create with writers
Book book1 = new Book();
Set<WriteOf> writings = new HashSet<WriteOf>();
person1.setWritrings(writings);
WriteOf writer = new WriteOf();
writer.setBook(book1);
writer.setWriter(person1);
writer.setStartDate(timestamp);
writer.setEndDate(timestamp);
writings.add(writer);
book1.setName(TEST_BOOK_NAME_1);
book1.setWriters(writings);
book1 = br.save(book1);
assertNotNull(book1);
assertNotNull(book1.getWriters());
assertEquals(1, book1.getWriters().size());
for (WriteOf writerOf : book1.getWriters()) {
assertNotNull(writerOf.getStartDate());
assertNotNull(writerOf.getEndDate());
}
}
@Test
public void testCRUDRelationshipsDomain() {
/*
Person person1 = new Person();
person1.setName("鲁迅");
person1 = pr.save(person1);
// Test create with writers
Book book1 = new Book();
Set<WriteOf> writings = new HashSet<WriteOf>();
person1.setWritrings(writings);;
WriteOf writer = new WriteOf();
writer.setBook(book1);
writer.setWriter(person1);
writings.add(writer);
book1.setName("百草园");
book1.setWriters(writings);
book1 = br.save(book1);
assertNotNull(book1);
assertNotNull(book1.getWriters());
assertEquals(1, book1.getWriters().size());
*/
/*
// Test add book;
Book book2 = new Book();
book2.setName("狂人日记");
book2 = br.save(book2);
assertNotNull(book2);
assertNull(book2.getReaders());
Person lx = null;
Optional<Person> p = pr.findById((long)1111);
lx = p.get();
Set<WriteOf> writings = lx.getWritrings();
WriteOf writer = new WriteOf();
writer = new WriteOf();
writer.setBook(book2);
writer.setWriter(lx);
writings.add(writer);
book2.setWriters(writings);
book2 = br.save(book2);
assertNotNull(book2.getWriters());
assertEquals(1, book2.getWriters().size());
*/
// Test remove writers
/* Person lx = null;
Optional<Person> p = pr.findById((long)1111);
lx = p.get();
Book book1 = br.findById((long)1112).get();
Book book2 = br.findById((long)12).get();
lx.getWritrings().removeAll(book1.getWriters());
lx.getWritrings().removeAll(book2.getWriters());
book2.setWriters(null);
book2 = br.save(book2);
book1.setWriters(null);
book1 = br.save(book1);
lx = pr.findById(lx.getId()).get();
assertNull(lx.getWritrings());
*/
// Book book2 = new Book();
// book2.setName("狂人日记2");
// book2 = br.save(book2);
br.deletallBook();
}
}
没有合适的资源?快使用搜索试试~ 我知道了~
资源推荐
资源详情
资源评论
收起资源包目录
spring_neo4j.rar (34个子文件)
spring_neo4j
.project 978B
src
test
resources
spring
neo4j-context.xml 397B
java
com
springNeo4j
test
BookRepositoryTest.java 7KB
PersonRepositoryTest.java 2KB
main
resources
META-INF
spring
db
neo4j-context.xml 759B
java
com
springNeo4j
domain
base
NameDomain.java 368B
DescriptiveDomain.java 431B
AbstractDomain.java 1KB
relationships
WriteOf.java 1KB
Book.java 914B
Person.java 1KB
config
MyNeo4jCofig.java 1KB
repository
PersonRepository.java 379B
BookRepository.java 522B
target
classes
com
springNeo4j
domain
base
AbstractDomain.class 1KB
NameDomain.class 587B
DescriptiveDomain.class 625B
relationships
WriteOf.class 2KB
Book.class 1KB
Person.class 2KB
config
MyNeo4jCofig.class 2KB
repository
PersonRepository.class 440B
BookRepository.class 593B
META-INF
MANIFEST.MF 112B
maven
com.lyf.neo4j
spring_neo4j
pom.properties 232B
pom.xml 2KB
spring
db
neo4j-context.xml 759B
test-classes
com
springNeo4j
test
PersonRepositoryTest.class 2KB
BookRepositoryTest.class 4KB
spring
neo4j-context.xml 397B
.settings
org.eclipse.m2e.core.prefs 90B
org.eclipse.jdt.core.prefs 291B
pom.xml 2KB
.classpath 1KB
共 34 条
- 1
资源评论
lee_3312
- 粉丝: 172
- 资源: 12
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功