Skip to content

Commit

Permalink
issue #75: add tag tag 591
Browse files Browse the repository at this point in the history
  • Loading branch information
pkiraly committed Dec 7, 2020
1 parent 816814a commit a4aacf4
Show file tree
Hide file tree
Showing 5 changed files with 106 additions and 6 deletions.
3 changes: 2 additions & 1 deletion CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,4 +4,5 @@

### Added

- British Library tags: 039, 091, 509, 539, 590
- British Library tags: 039, 091, 509, 539, 590,
591
Original file line number Diff line number Diff line change
@@ -0,0 +1,44 @@
package de.gwdg.metadataqa.marc.definition.tags.bltags;

import de.gwdg.metadataqa.marc.definition.Cardinality;
import de.gwdg.metadataqa.marc.definition.DataFieldDefinition;
import de.gwdg.metadataqa.marc.definition.Indicator;

/**
* National Bibliography Issue Number
*/
public class Tag591 extends DataFieldDefinition {

private static Tag591 uniqueInstance;

private Tag591() {
initialize();
postCreation();
}

public static Tag591 getInstance() {
if (uniqueInstance == null)
uniqueInstance = new Tag591();
return uniqueInstance;
}

private void initialize() {

tag = "591";
label = "Document Supply Conference Note";
mqTag = "documentSupplyConferenceNote";
cardinality = Cardinality.Repeatable;
// descriptionUrl = "https://www.loc.gov/marc/bibliographic/bd037.html";
// setCompilanceLevels("O");

ind1 = new Indicator();
ind2 = new Indicator();

setSubfieldsWithCardinality(
"a", "Conference note", "NR"
);

getSubfield("a")
.setMqTag("conferenceNote");
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -28,10 +28,10 @@ public void validField(String subfield, String value) {
field.setRecord(record);

assertFalse(
String.format("539$%s=%s should be invalid in normal case", subfield, value),
String.format("590$%s=%s should be invalid in normal case", subfield, value),
field.validate(MarcVersion.MARC21));
assertTrue(
String.format("539$%s=%s should be valid in normal case", subfield, value),
String.format("590$%s=%s should be valid in normal case", subfield, value),
field.validate(MarcVersion.BL));
}

Expand All @@ -46,10 +46,10 @@ public void invalidField(String ind1, String subfield, String value) {
field.setRecord(record);

assertFalse(
String.format("539$%s=%s should be invalid in normal case", subfield, value),
String.format("590$%s=%s should be invalid in normal case", subfield, value),
field.validate(MarcVersion.MARC21));
assertFalse(
String.format("539$%s=%s should be invalid in BL", subfield, value),
String.format("590$%s=%s should be invalid in BL", subfield, value),
field.validate(MarcVersion.BL));
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,55 @@
package de.gwdg.metadataqa.marc.definition.tags.bltags;

import de.gwdg.metadataqa.marc.DataField;
import de.gwdg.metadataqa.marc.MarcRecord;
import de.gwdg.metadataqa.marc.definition.MarcVersion;
import org.junit.Test;

import static junit.framework.TestCase.assertFalse;
import static junit.framework.TestCase.assertTrue;

public class Tag591Test {

@Test
public void testValidFields() {
validField("a", "Papers. Based on those presented at the conference.");
}

@Test
public void testInvalidFields() {
invalidField("b", "NLS copy dimensions: 16 cm.");
invalidField("1", "a", "NLS copy dimensions: 16 cm.");
}

public void validField(String subfield, String value) {
DataField field = new DataField(Tag591.getInstance(), " ", " ", subfield, value);

MarcRecord record = new MarcRecord("test");
field.setRecord(record);

assertFalse(
String.format("591$%s=%s should be invalid in normal case", subfield, value),
field.validate(MarcVersion.MARC21));
assertTrue(
String.format("591$%s=%s should be valid in normal case", subfield, value),
field.validate(MarcVersion.BL));
}

public void invalidField(String subfield, String value) {
invalidField(" ", subfield, value);
}

public void invalidField(String ind1, String subfield, String value) {
DataField field = new DataField(Tag591.getInstance(), ind1, " ", subfield, value);

MarcRecord record = new MarcRecord("test");
field.setRecord(record);

assertFalse(
String.format("591$%s=%s should be invalid in normal case", subfield, value),
field.validate(MarcVersion.MARC21));
assertFalse(
String.format("591$%s=%s should be invalid in BL", subfield, value),
field.validate(MarcVersion.BL));
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@ public void testListTag() {
List<Class<? extends DataFieldDefinition>> tags = MarcTagLister.listTags();
assertNotNull(tags);
assertNotEquals(0, tags.size());
assertEquals(328, tags.size());
assertEquals(329, tags.size());
assertEquals("Tag010", tags.get(0).getSimpleName());
Map<String, Integer> versionCounter = new HashMap<>();
Map<MarcVersion, Integer> versionCounter2 = new HashMap<>();
Expand Down

0 comments on commit a4aacf4

Please sign in to comment.