package com.ausregistry.jtoolkit2.tmdb.xml;
import static org.hamcrest.Matchers.sameInstance;
import static org.junit.Assert.assertThat;
import static org.mockito.Mockito.verify;
import static org.powermock.api.mockito.PowerMockito.whenNew;
import javax.xml.parsers.DocumentBuilderFactory;
import java.io.ByteArrayInputStream;
import com.ausregistry.jtoolkit2.tmdb.model.TmUdrp;
import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.mockito.Mock;
import org.powermock.core.classloader.annotations.PrepareForTest;
import org.powermock.modules.junit4.PowerMockRunner;
import org.w3c.dom.Node;
@RunWith(PowerMockRunner.class)
@PrepareForTest({TmUdrpXmlParser.class})
public class TmUdrpXmlParserTest {
@Mock
private TmUdrp mockUdrp;
private TmUdrpXmlParser tmUdrpXmlParser = new TmUdrpXmlParser();
@Before
public void setUp() throws Exception {
whenNew(TmUdrp.class).withNoArguments().thenReturn(mockUdrp);
}
@Test
public void shouldParseCaseNumber() throws Exception {
String udrpXml = "<tmNotice:udrp><tmNotice:caseNo>D2003-0499</tmNotice:caseNo></tmNotice:udrp>";
TmUdrp tmUdrp = tmUdrpXmlParser.parse(nodeForString(udrpXml));
assertThat(tmUdrp, sameInstance(mockUdrp));
verify(mockUdrp).setCaseNumber("D2003-0499");
}
@Test
public void shouldParseUdrpProvider() throws Exception {
String udrpXml = "<tmNotice:udrp><tmNotice:udrpProvider>WIPO</tmNotice:udrpProvider></tmNotice:udrp>";
tmUdrpXmlParser.parse(nodeForString(udrpXml));
verify(mockUdrp).setUdrpProvider("WIPO");
}
private Node nodeForString(String xmlFragment) throws Exception {
return DocumentBuilderFactory
.newInstance()
.newDocumentBuilder()
.parse(new ByteArrayInputStream(xmlFragment.getBytes()))
.getDocumentElement();
}
}