Skip to content

Commit

Permalink
Indlæsning af metadata
Browse files Browse the repository at this point in the history
  • Loading branch information
mwl committed May 22, 2012
1 parent 8ced9e5 commit 6c1e0ae
Show file tree
Hide file tree
Showing 2 changed files with 160 additions and 1 deletion.
Original file line number Original file line Diff line number Diff line change
Expand Up @@ -258,7 +258,43 @@ private DateTime nullableDateTime(XMLGregorianCalendar xmlDate) {
@Override @Override
@Transactional @Transactional
public IndlaesMetadataResponse indlaesMetadata(IndlaesMetadataRequest request, SoapHeader soapHeader) { public IndlaesMetadataResponse indlaesMetadata(IndlaesMetadataRequest request, SoapHeader soapHeader) {
return null; if (request.getArbejdsfunktioner() != null) {
for (final Arbejdsfunktioner.Arbejdsfunktion jaxbArbejdsfunktion : request.getArbejdsfunktioner().getArbejdsfunktion()) {
logger.info("Adding arbejdsfunktion=" + jaxbArbejdsfunktion);
arbejdsfunktionDao.save(new Arbejdsfunktion() {{
this.setArbejdsfunktion(jaxbArbejdsfunktion.getArbejdsfunktion());
this.setBeskrivelse(jaxbArbejdsfunktion.getBeskrivelse());
this.setDomaene(domaeneDao.findByKode(jaxbArbejdsfunktion.getDomaene()));
this.setLinkedSystem(linkedSystemDao.findBySystem(jaxbArbejdsfunktion.getSystem()));
}});
}
}

if (request.getRettigheder() != null) {
for (final Rettigheder.Rettighed jaxbRettighed : request.getRettigheder().getRettighed()) {
logger.info("Adding rettighed=" + jaxbRettighed.toString());
rettighedDao.save(new Rettighed() {{
this.setRettighedskode(jaxbRettighed.getRettighed());
this.setBeskrivelse(jaxbRettighed.getBeskrivelse());
this.setDomaene(domaeneDao.findByKode(jaxbRettighed.getDomaene()));
this.setLinkedSystem(linkedSystemDao.findBySystem(jaxbRettighed.getSystem()));
}});
}
}

if (request.getDelegerbarRettigheder() != null) {
for (final DelegerbarRettigheder.DelegerbarRettighed jaxbDelegerbarRettighed : request.getDelegerbarRettigheder().getDelegerbarRettighed()) {
logger.info("Adding delegerbarRettighed=" + jaxbDelegerbarRettighed.toString());
delegerbarRettighedDao.save(new DelegerbarRettighed() {{
this.setArbejdsfunktion(arbejdsfunktionDao.findByArbejdsfunktion(jaxbDelegerbarRettighed.getArbejdsfunktion()));
this.setKode(jaxbDelegerbarRettighed.getRettighed());
this.setSystem(linkedSystemDao.findBySystem(jaxbDelegerbarRettighed.getSystem()));
this.setDomaene(domaeneDao.findByKode(jaxbDelegerbarRettighed.getDomaene()));
}});
}
}

return new IndlaesMetadataResponse();
} }


@Override @Override
Expand Down
Original file line number Original file line Diff line number Diff line change
Expand Up @@ -52,6 +52,7 @@ public class BemyndigelsesServiceImplTest {
final String bemyndigedeCvrText = "BemyndigedeCvr"; final String bemyndigedeCvrText = "BemyndigedeCvr";
final String arbejdsfunktionKode = "Arbejdsfunktion"; final String arbejdsfunktionKode = "Arbejdsfunktion";
final String rettighedKode = "Rettighedskode"; final String rettighedKode = "Rettighedskode";
final String domaeneKode = "DomaeneKode";
final String systemKode = "SystemKode"; final String systemKode = "SystemKode";
final String statusKode = "StatusKode"; final String statusKode = "StatusKode";


Expand Down Expand Up @@ -410,6 +411,128 @@ public void canGetMetadata() throws Exception {
assertEquals(jaxbDelegerbarRettigheder, metadata.getDelegerbarRettigheder()); assertEquals(jaxbDelegerbarRettigheder, metadata.getDelegerbarRettigheder());
} }


@Test
public void canIndlaeseArbejdsfunktioner() throws Exception {
final IndlaesMetadataRequest request = new IndlaesMetadataRequest() {{
this.setArbejdsfunktioner(new Arbejdsfunktioner() {{
getArbejdsfunktion().add(new Arbejdsfunktion() {{
this.setArbejdsfunktion("Arbejdsfunktion");
this.setBeskrivelse("Beskrivelse");
this.setDomaene(domaeneKode);
this.setSystem(systemKode);
}});
}});
}};

final Domaene domaene = new Domaene();
final LinkedSystem linkedSystem = new LinkedSystem();
when(domaeneDao.findByKode(domaeneKode)).thenReturn(domaene);
when(linkedSystemDao.findBySystem(systemKode)).thenReturn(linkedSystem);

assertNotNull(service.indlaesMetadata(request, soapHeader));

verify(arbejdsfunktionDao).save(argThat(new TypeSafeMatcher<Arbejdsfunktion>() {
@Override
public boolean matchesSafely(Arbejdsfunktion item) {
return allTrue(
item.getArbejdsfunktion().equals("Arbejdsfunktion"),
item.getBeskrivelse().equals("Beskrivelse"),
item.getDomaene() == domaene,
item.getLinkedSystem() == linkedSystem
);
}

@Override
public void describeTo(Description description) {
}
}));
}

@Test
public void canIndlaeseRettigheder() throws Exception {
final IndlaesMetadataRequest request = new IndlaesMetadataRequest() {{
this.setRettigheder(new Rettigheder() {{
getRettighed().add(new Rettighed() {{
this.setBeskrivelse("Beskrivelse");
this.setDomaene(domaeneKode);
this.setSystem(systemKode);
this.setRettighed("Rettighed");
}});
}});
}};

final Domaene domaene = new Domaene();
final LinkedSystem linkedSystem = new LinkedSystem();
when(domaeneDao.findByKode(domaeneKode)).thenReturn(domaene);
when(linkedSystemDao.findBySystem(systemKode)).thenReturn(linkedSystem);

assertNotNull(service.indlaesMetadata(request, soapHeader));

verify(rettighedDao).save(argThat(new TypeSafeMatcher<Rettighed>() {
@Override
public boolean matchesSafely(Rettighed item) {
return allTrue(
item.getBeskrivelse().equals("Beskrivelse"),
item.getDomaene() == domaene,
item.getLinkedSystem() == linkedSystem,
item.getRettighedskode().equals("Rettighed")
);
}

@Override
public void describeTo(Description description) {
}
}));
}

@Test
public void canIndlaeseDelegeredeRettigheder() throws Exception {
final IndlaesMetadataRequest request = new IndlaesMetadataRequest() {{
this.setDelegerbarRettigheder(new DelegerbarRettigheder() {{
getDelegerbarRettighed().add(new DelegerbarRettighed() {{
this.setArbejdsfunktion("Arbejdsfunktion");
this.setDomaene(domaeneKode);
this.setRettighed("Rettighed");
this.setSystem(systemKode);
}});
}});
}};

final Domaene domaene = new Domaene();
final LinkedSystem linkedSystem = new LinkedSystem();
final Arbejdsfunktion arbejdsfunktion = new Arbejdsfunktion();
when(domaeneDao.findByKode(domaeneKode)).thenReturn(domaene);
when(linkedSystemDao.findBySystem(systemKode)).thenReturn(linkedSystem);
when(arbejdsfunktionDao.findByArbejdsfunktion("Arbejdsfunktion")).thenReturn(arbejdsfunktion);

assertNotNull(service.indlaesMetadata(request, soapHeader));

verify(delegerbarRettighedDao).save(argThat(new TypeSafeMatcher<DelegerbarRettighed>() {
@Override
public boolean matchesSafely(DelegerbarRettighed item) {
return allTrue(
item.getArbejdsfunktion() == arbejdsfunktion,
item.getDomaene() == domaene,
item.getKode().equals("Rettighed"),
item.getSystem() == linkedSystem
);
}

@Override
public void describeTo(Description description) {
}
}));
}

@Test
public void willAllowEmptyIndlaesMetadata() throws Exception {
assertNotNull(service.indlaesMetadata(new IndlaesMetadataRequest(), soapHeader));

verifyZeroInteractions(arbejdsfunktionDao);
verifyZeroInteractions(rettighedDao);
verifyZeroInteractions(delegerbarRettighedDao);
}

public boolean allTrue(boolean... eval) { public boolean allTrue(boolean... eval) {
int a = 0; int a = 0;
for (boolean b : eval) { for (boolean b : eval) {
Expand Down

0 comments on commit 6c1e0ae

Please sign in to comment.