public void testPerform_newDbFile() throws Exception { d.repo1 = "internal(revision=1)"; d.repo2 = "public(revision=4)"; expect(mockFs.exists(new File("/foo/db.txt"))).andReturn(false); mockFs.write( Joiner.on('\n') .join( "{", " 'equivalences': [", " {", " 'rev1': {", " 'revId': '1',", " 'repositoryName': 'internal'", " },", " 'rev2': {", " 'revId': '4',", " 'repositoryName': 'public'", " }", " }", " ],", " 'migrations': []", "}") .replace('\'', '"'), new File("/foo/db.txt")); control.replay(); int result = d.perform(); control.verify(); assertEquals(0, result); }
public void testPerform_existingDbFile_addEquivalence() throws Exception { d.repo1 = "internal(revision=1)"; d.repo2 = "public(revision=4)"; String baseDbString = Joiner.on('\n') .join( "{", " 'equivalences': [", " {", " 'rev1': {", " 'revId': '0',", " 'repositoryName': 'internal'", " },", " 'rev2': {", " 'revId': '3',", " 'repositoryName': 'public'", " }", " }%s", // New equivalence is added here. " ],", " 'migrations': []", "}") .replace('\'', '"'); String oldDbString = String.format(baseDbString, ""); String newDbString = String.format( baseDbString, Joiner.on('\n') .join( ",", " {", " 'rev1': {", " 'revId': '1',", " 'repositoryName': 'internal'", " },", " 'rev2': {", " 'revId': '4',", " 'repositoryName': 'public'", " }", " }")) .replace('\'', '"'); expect(mockFs.exists(new File("/foo/db.txt"))).andReturn(true); expect(mockFs.fileToString(new File("/foo/db.txt"))).andReturn(oldDbString); mockFs.write(newDbString, new File("/foo/db.txt")); control.replay(); int result = d.perform(); control.verify(); assertEquals(0, result); }
public void testPerform_invalidRepo() throws Exception { d.repo1 = "nonexistent(revision=2)"; d.repo2 = "public(revision=3)"; expect(mockFs.exists(new File("/foo/db.txt"))).andReturn(false); control.replay(); try { d.perform(); fail("NoteEquivalenceDirective didn't fail on invalid repository 'nonexistent'."); } catch (MoeProblem expected) { assertEquals( "No such repository 'nonexistent' in the config. Found: [internal, public]", expected.getMessage()); } control.verify(); }