Project

General

Profile

1
package eu.dnetlib.data.mdstore.modular.mongodb;
2

    
3
import java.net.UnknownHostException;
4
import java.util.ArrayList;
5
import java.util.List;
6
import java.util.UUID;
7

    
8
import org.junit.Assert;
9
import org.junit.Ignore;
10
import org.junit.runner.RunWith;
11
import org.springframework.beans.factory.annotation.Autowired;
12
import org.springframework.test.context.ContextConfiguration;
13
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
14

    
15
import com.mongodb.DB;
16
import com.mongodb.DBCollection;
17
import com.mongodb.DBCursor;
18
import com.mongodb.Mongo;
19

    
20
import eu.dnetlib.data.mdstore.MDStoreServiceException;
21
import eu.dnetlib.data.mdstore.modular.connector.MDStore;
22
import eu.dnetlib.data.mdstore.modular.connector.MDStoreDao;
23
import eu.dnetlib.data.mdstore.modular.connector.MDStoreTransactionManager;
24

    
25
@RunWith(SpringJUnit4ClassRunner.class)
26
@ContextConfiguration(classes = ConfigurationTestConfig.class)
27
public class MDStoreTransactionManagerTest {
28

    
29
	@Autowired
30
	private DB db;
31

    
32
	@Autowired
33
	private MDStoreTransactionManager manager;
34

    
35
	@Autowired
36
	private MDStoreDao dao;
37

    
38
	@Ignore
39
	public void testCreateandRetrieve() throws MDStoreServiceException {
40
		UUID idCreation = UUID.randomUUID();
41
		db.getCollection("metadataManager").drop();
42
		((MDStoreTransactionManagerImpl) manager).setManagerTable(null);
43

    
44
		String mdId = idCreation.toString() + "_TURTdG9yZURTUmVzb3VyY2VzL01EU3RvcmVEU1Jlc291cmNlVHlwZQ==";
45
		manager.createMDStore(mdId);
46

    
47
		Assert.assertNotNull(manager.startTransaction(mdId, true));
48
		Assert.assertNotNull(manager.startTransaction(mdId, true));
49

    
50
		String s = manager.getMDStoreCollection(mdId);
51
		Assert.assertNotNull(s);
52
		this.manager.dropMDStore(mdId);
53
		s = null;
54
		try {
55
			s = manager.getMDStoreCollection(mdId);
56
		} catch (Exception e) {
57

    
58
		}
59
		Assert.assertNull(s);
60
		db.getCollection("metadataManager").drop();
61
		((MDStoreTransactionManagerImpl) manager).setManagerTable(null);
62
	}
63

    
64
	@Ignore
65
	public void testReadMdStore() throws MDStoreServiceException {
66
		UUID idCreation = UUID.randomUUID();
67
		String mdId = idCreation.toString() + "_TURTdG9yZURTUmVzb3VyY2VzL01EU3RvcmVEU1Jlc291cmNlVHlwZQ==";
68
		manager.createMDStore(mdId);
69
		Assert.assertNotNull(manager.readMdStore(mdId));
70
		Assert.assertNotNull(manager.startTransaction(mdId, true));
71
		Assert.assertNotNull(manager.readMdStore(mdId));
72
		db.getCollection("metadataManager").drop();
73
		((MDStoreTransactionManagerImpl) manager).setManagerTable(null);
74
		db.getCollection("metadataManager").drop();
75
		((MDStoreTransactionManagerImpl) manager).setManagerTable(null);
76

    
77
	}
78

    
79
	@Ignore
80
	public void testCommit() throws MDStoreServiceException {
81
		UUID idCreation = UUID.randomUUID();
82
		String mdId = idCreation.toString() + "_TURTdG9yZURTUmVzb3VyY2VzL01EU3RvcmVEU1Jlc291cmNlVHlwZQ==";
83
		manager.createMDStore(mdId);
84
		String idCurrent = manager.readMdStore(mdId);
85
		String transaction = manager.startTransaction(mdId, true);
86
		Assert.assertTrue(manager.commit(transaction, mdId));
87
		Assert.assertNotSame(idCurrent, manager.readMdStore(mdId));
88

    
89
	}
90

    
91
	@Ignore
92
	public void testDateTime() throws MDStoreServiceException, UnknownHostException {
93
		Mongo mongo = new Mongo("localhost", 27017);
94
		DB dbinput = mongo.getDB("mdstore");
95
		DBCollection inputCollection = dbinput.getCollection("70e07e9f-b3bf-4423-8777-b159819e0c6a");
96

    
97
		Assert.assertNotNull(inputCollection.findOne().get("body"));
98
		UUID idCreation = UUID.randomUUID();
99

    
100
		String mdId = idCreation.toString() + "_TURTdG9yZURTUmVzb3VyY2VzL01EU3RvcmVEU1Jlc291cmNlVHlwZQ==";
101

    
102
		manager.createMDStore(mdId);
103
		dao.createMDStore(mdId, "a", "a", "a");
104

    
105
		String transId = manager.startTransaction(mdId, true);
106

    
107
		ArrayList<String> data = new ArrayList<String>();
108
		DBCursor cursor = inputCollection.find();
109

    
110
		for (int i = 0; i < 1000; i++) {
111
			data.add((String) cursor.next().get("body"));
112
		}
113
		dao.getMDStore(transId).feed(data, true);
114
		manager.commit(transId, mdId);
115

    
116
		cursor = inputCollection.find();
117
		transId = manager.startTransaction(mdId, false);
118

    
119
		data.clear();
120
		for (int i = 0; i < 10; i++) {
121
			data.add(cursor.next().get("body").toString().replace("oai:pumaoai.isti.cnr.it:", "SUUUCAAA"));
122
		}
123

    
124
		String currentId = manager.readMdStore(mdId);
125

    
126
		final MDStore newMdstore = dao.getMDStore(currentId);
127

    
128
		new Thread(new Runnable() {
129

    
130
			@Override
131
			public void run() {
132
				List<String> dataInput = newMdstore.deliver("", "", null).getResult(0, 10);
133
				for (int i = 0; i < 10; i++) {
134
					try {
135
						Thread.sleep(1000);
136
					} catch (InterruptedException e) {
137
						// TODO Auto-generated catch block
138
						e.printStackTrace();
139
					}
140
					System.out.println(dataInput.get(i));
141
				}
142

    
143
			}
144
		}).start();
145

    
146
		dao.getMDStore(transId).feed(data, true);
147
		manager.commit(transId, mdId);
148

    
149
	}
150
}
(2-2/2)