diff options
author | Frank Becker | 2012-02-26 13:58:55 +0000 |
---|---|---|
committer | Frank Becker | 2012-02-26 13:58:55 +0000 |
commit | 2952584b62acdfc6ada2c532f41717cfed9e73ea (patch) | |
tree | b42034898c47db9e8e4538f3933c6f815fea3891 | |
parent | c2f4cab9b71b2392ad32f30409c229bfb33a4c5b (diff) | |
download | org.eclipse.mylyn.tasks-2952584b62acdfc6ada2c532f41717cfed9e73ea.tar.gz org.eclipse.mylyn.tasks-2952584b62acdfc6ada2c532f41717cfed9e73ea.tar.xz org.eclipse.mylyn.tasks-2952584b62acdfc6ada2c532f41717cfed9e73ea.zip |
ASSIGNED - bug 372591: BugzillaXmlRpcClient.updateProductInfo should
work with Bugzilla 4.2
https://bugs.eclipse.org/bugs/show_bug.cgi?id=372591
2 files changed, 30 insertions, 4 deletions
diff --git a/org.eclipse.mylyn.bugzilla.core/src/org/eclipse/mylyn/internal/bugzilla/core/service/BugzillaXmlRpcClient.java b/org.eclipse.mylyn.bugzilla.core/src/org/eclipse/mylyn/internal/bugzilla/core/service/BugzillaXmlRpcClient.java index ee559197c..e1e4147b2 100644 --- a/org.eclipse.mylyn.bugzilla.core/src/org/eclipse/mylyn/internal/bugzilla/core/service/BugzillaXmlRpcClient.java +++ b/org.eclipse.mylyn.bugzilla.core/src/org/eclipse/mylyn/internal/bugzilla/core/service/BugzillaXmlRpcClient.java @@ -432,11 +432,15 @@ public class BugzillaXmlRpcClient extends CommonXmlRpcClient { String defaultMilestone = null; String product = (String) ((HashMap<?, ?>) object).get("name"); //$NON-NLS-1$ HashMap<?, ?> values = (HashMap<?, ?>) ((HashMap<?, ?>) object).get("internals"); //$NON-NLS-1$ - if (values == null) { - continue; + Object defaultMilestoneObj = null; + if (values != null) { + if (values instanceof HashMap<?, ?>) { + defaultMilestoneObj = ((HashMap<?, ?>) values).get("defaultmilestone"); //$NON-NLS-1$ + } + } else { + defaultMilestoneObj = ((HashMap<?, ?>) object).get("default_milestone"); //$NON-NLS-1$ } - if (values instanceof HashMap<?, ?>) { - Object defaultMilestoneObj = ((HashMap<?, ?>) values).get("defaultmilestone"); //$NON-NLS-1$ + if (defaultMilestoneObj != null) { if (defaultMilestoneObj instanceof String) { defaultMilestone = (String) defaultMilestoneObj; } else if (defaultMilestoneObj instanceof Double) { diff --git a/org.eclipse.mylyn.bugzilla.tests/src/org/eclipse/mylyn/bugzilla/tests/core/BugzillaXmlRpcClientTest.java b/org.eclipse.mylyn.bugzilla.tests/src/org/eclipse/mylyn/bugzilla/tests/core/BugzillaXmlRpcClientTest.java index ffa59157f..67133538a 100644 --- a/org.eclipse.mylyn.bugzilla.tests/src/org/eclipse/mylyn/bugzilla/tests/core/BugzillaXmlRpcClientTest.java +++ b/org.eclipse.mylyn.bugzilla.tests/src/org/eclipse/mylyn/bugzilla/tests/core/BugzillaXmlRpcClientTest.java @@ -41,6 +41,7 @@ import org.eclipse.mylyn.internal.bugzilla.core.BugzillaClient; import org.eclipse.mylyn.internal.bugzilla.core.BugzillaRepositoryConnector; import org.eclipse.mylyn.internal.bugzilla.core.BugzillaVersion; import org.eclipse.mylyn.internal.bugzilla.core.CustomTransitionManager; +import org.eclipse.mylyn.internal.bugzilla.core.RepositoryConfiguration; import org.eclipse.mylyn.internal.bugzilla.core.service.BugzillaXmlRpcClient; import org.eclipse.mylyn.internal.tasks.core.AbstractTask; import org.eclipse.mylyn.internal.tasks.core.RepositoryQuery; @@ -968,4 +969,25 @@ public class BugzillaXmlRpcClientTest extends TestCase { } return div; } + + public void testUpdateProductInfo() throws Exception { + if (BugzillaFixture.current().getDescription().equals(BugzillaFixture.XML_RPC_DISABLED) + || BugzillaFixture.current() == BugzillaFixture.BUGS_3_4) { + return; + } + RepositoryConfiguration repositoryConfiguration = connector.getRepositoryConfiguration(repository.getRepositoryUrl()); + + for (String product : repositoryConfiguration.getProducts()) { + repositoryConfiguration.setDefaultMilestone(product, null); + } + + bugzillaClient.updateProductInfo(new NullProgressMonitor(), repositoryConfiguration); + for (String product : repositoryConfiguration.getProducts()) { + if (product.equals("ManualTest") || product.equals("Scratch") || product.equals("TestProduct")) { + assertEquals("---", repositoryConfiguration.getDefaultMilestones(product)); + } else { + fail("never reach this"); + } + } + } } |