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); }
@Override public void setUp() throws Exception { super.setUp(); contextFactory.projectConfigs.put( "moe_config.txt", "{'name': 'foo', 'repositories': {" + " 'internal': {'type': 'dummy'}, 'public': {'type': 'dummy'}" + "}}"); super.setUp(); // TODO(cgruber): Rip this out when Db.Factory is injected. Injector.INSTANCE = new Injector(mockFs, cmd, contextFactory, ui); d = new NoteEquivalenceDirective(contextFactory, dbFactory, dbWriter, ui); d.setContextFileName("moe_config.txt"); d.dbLocation = "/foo/db.txt"; }
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(); }