RAMDirectory directory = new RAMDirectory();
DirectoryReader reader = getIndexReader(directory);
IndexWriter writer = new IndexWriter(directory, _conf.clone());
assertEquals(0, reader.numDocs());
Row row = genRow();
List<Column> cols = new ArrayList<Column>();
cols.add(new Column("n", "v"));
cols.add(new Column("n1", "v1"));
row.addToRecords(new Record("1", "fam", cols));
_action.replaceRow(row);
_action.performMutate(getSearcher(reader, directory), writer);
reader = commitAndReopen(reader, writer);
assertEquals(2, reader.numDocs());
cols.clear();
cols.add(new Column("n1", "v2"));
Record record = new Record("1", "fam", cols);
_action.replaceColumns(row.getId(), record);
_action.performMutate(getSearcher(reader, directory), writer);
reader = commitAndReopen(reader, writer);
assertEquals(2, reader.numDocs());
IndexSearcher searcher = new IndexSearcher(reader);
TopDocs topDocs = searcher.search(new TermQuery(new Term(BlurConstants.ROW_ID, row.getId())), 10);
Document doc2 = searcher.doc(topDocs.scoreDocs[1].doc);
List<IndexableField> fields = doc2.getFields();
assertEquals(5, fields.size());
String value = doc2.get("fam.n1");
assertEquals("v2", value);