Skip to content

Commit

Permalink
[VAS] Bug 11776: small tests
Browse files Browse the repository at this point in the history
  • Loading branch information
laedanrex committed Oct 23, 2023
1 parent 945afbf commit 1e0fb6c
Show file tree
Hide file tree
Showing 14 changed files with 887 additions and 180 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -63,6 +63,28 @@ export function newUnit(currentId: string, parentId?: string): Unit {
};
}

export function newAttachmentUnit(currentId: string, parentId?: string): Unit {
return {
'#id': currentId,
'#unitups': [parentId],
'#allunitups': [parentId],
'#opi': 'whatever',
'#unitType': UnitType.INGEST,
Title: 'whatever',
DescriptionLevel: DescriptionLevel.ITEM,
'#management': {
AppraisalRule: undefined,
HoldRule: undefined,
StorageRule: undefined,
ReuseRule: undefined,
ClassificationRule: undefined,
DisseminationRule: undefined,
AccessRule: undefined,
UpdateOperation: { SystemId: currentId },
}
};
}

export function newResultFacet(id: string, count?: number): ResultFacet {
return { node: id, count };
}
Expand Down Expand Up @@ -192,8 +214,8 @@ describe('FilingHoldingSchemeHandler', () => {
expect(uaNodes[3].children[1].id).toEqual('node-3-1');
expect(uaNodes[3].children[1].count).toEqual(1);
});

});

describe('keepEndNodesWithResultsOnly', () => {
it('should keep ends results only', () => {
const treePlanNodes: FilingHoldingSchemeNode[] = [
Expand Down Expand Up @@ -228,8 +250,8 @@ describe('FilingHoldingSchemeHandler', () => {
newTreeNode('node-4', 0),
];
const leaves: FilingHoldingSchemeNode[] = FilingHoldingSchemeHandler.keepEndNodesWithResultsOnly(treePlanNodes);
expect(leaves.length).toEqual(3);

expect(leaves.length).toEqual(3);
expect(leaves[0].id).toEqual('node-0-0-1');
expect(leaves[0].count).toEqual(1);
expect(leaves[1].id).toEqual('node-0-3');
Expand Down Expand Up @@ -269,9 +291,10 @@ describe('FilingHoldingSchemeHandler', () => {
newTreeNode('node-3', 0),
newTreeNode('node-4', 0),
];

const leaves: FilingHoldingSchemeNode[] = FilingHoldingSchemeHandler.keepEndNodesWithResultsOnly(treePlanNodes);
expect(leaves.length).toEqual(5);

expect(leaves.length).toEqual(5);
expect(leaves[0].id).toEqual('node-0-0');
expect(leaves[0].count).toEqual(18);
expect(leaves[1].id).toEqual('node-0-0-0');
Expand All @@ -284,6 +307,176 @@ describe('FilingHoldingSchemeHandler', () => {
expect(leaves[4].count).toEqual(1);
});
});

describe('keepEndNodesWithResultsThatAreNOTAttachmentUnitsOnly', () => {
it('should return an empty array if the nodes array is empty', () => {
const attachmentUnits: Unit[] = [];
const treePlanNodes: FilingHoldingSchemeNode[] = [];

const leaves: FilingHoldingSchemeNode[] = FilingHoldingSchemeHandler.keepEndNodesWithResultsThatAreNOTAttachmentUnitsOnly(
treePlanNodes, attachmentUnits);

expect(leaves).toEqual([]);
});

it('should return an empty array if the attachmentUnits array is empty', () => {
const attachmentUnits: Unit[] = [];
const treePlanNodes: FilingHoldingSchemeNode[] = [
newTreeNode('node-0', 3, [
newTreeNode('node-0-0', 1, [
newTreeNode('node-0-0-0', 0),
newTreeNode('node-0-0-1', 1),
newTreeNode('node-0-0-2', 0),
newTreeNode('node-0-0-3', 0),
newTreeNode('node-0-0-4', 0),
]),
newTreeNode('node-0-1', 0),
newTreeNode('node-0-2', 0),
newTreeNode('node-0-3', 2),
newTreeNode('node-0-4', 0),
]),
newTreeNode('node-1', 0, [
newTreeNode('node-1-0', 0),
newTreeNode('node-1-1', 0),
newTreeNode('node-1-2', 0),
newTreeNode('node-1-3', 0),
newTreeNode('node-1-4', 0),
]),
newTreeNode('node-2', 1, [
newTreeNode('node-2-0', 0),
newTreeNode('node-2-1', 0),
newTreeNode('node-2-2', 1),
newTreeNode('node-2-3', 0),
newTreeNode('node-2-4', 0),
]),
newTreeNode('node-3', 0),
newTreeNode('node-4', 0),
];

const leaves: FilingHoldingSchemeNode[] = FilingHoldingSchemeHandler.keepEndNodesWithResultsThatAreNOTAttachmentUnitsOnly(
treePlanNodes, attachmentUnits);

console.log(JSON.stringify(leaves));
expect(leaves.length).toEqual(6);
expect(leaves[0].id).toEqual('node-0');
expect(leaves[0].count).toEqual(3);
expect(leaves[1].id).toEqual('node-0-0');
expect(leaves[1].count).toEqual(1);
expect(leaves[2].id).toEqual('node-0-0');
expect(leaves[2].count).toEqual(1);
expect(leaves[3].id).toEqual('node-0');
expect(leaves[3].count).toEqual(3);
expect(leaves[4].id).toEqual('node-2');
expect(leaves[4].count).toEqual(1);
expect(leaves[5].id).toEqual('node-2');
expect(leaves[5].count).toEqual(1);
});

it('should keep ends results only, and only if they are attachment units', () => {
const attachmentUnits: Unit[] = [newAttachmentUnit('node-0-3'), newAttachmentUnit('node-2-2')];
const treePlanNodes: FilingHoldingSchemeNode[] = [
newTreeNode('node-0', 3, [
newTreeNode('node-0-0', 1, [
newTreeNode('node-0-0-0', 0),
newTreeNode('node-0-0-1', 1),
newTreeNode('node-0-0-2', 0),
newTreeNode('node-0-0-3', 0),
newTreeNode('node-0-0-4', 0),
]),
newTreeNode('node-0-1', 0),
newTreeNode('node-0-2', 0),
newTreeNode('node-0-3', 2),
newTreeNode('node-0-4', 0),
]),
newTreeNode('node-1', 0, [
newTreeNode('node-1-0', 0),
newTreeNode('node-1-1', 0),
newTreeNode('node-1-2', 0),
newTreeNode('node-1-3', 0),
newTreeNode('node-1-4', 0),
]),
newTreeNode('node-2', 1, [
newTreeNode('node-2-0', 0),
newTreeNode('node-2-1', 0),
newTreeNode('node-2-2', 1),
newTreeNode('node-2-3', 0),
newTreeNode('node-2-4', 0),
]),
newTreeNode('node-3', 0),
newTreeNode('node-4', 0),
];

const leaves: FilingHoldingSchemeNode[] = FilingHoldingSchemeHandler.keepEndNodesWithResultsThatAreNOTAttachmentUnitsOnly(
treePlanNodes, attachmentUnits);

expect(leaves.length).toEqual(6);
expect(leaves[0].id).toEqual('node-0-0');
expect(leaves[0].count).toEqual(1);
expect(leaves[1].id).toEqual('node-0-0');
expect(leaves[1].count).toEqual(1);
expect(leaves[2].id).toEqual('node-0-3');
expect(leaves[2].count).toEqual(2);
expect(leaves[3].id).toEqual('node-0');
expect(leaves[3].count).toEqual(3);
expect(leaves[4].id).toEqual('node-2-2');
expect(leaves[4].count).toEqual(1);
expect(leaves[5].id).toEqual('node-2');
expect(leaves[5].count).toEqual(1);
});

it('should keep ends results only and parent if parent has more match ?', () => {
const attachmentUnits: Unit[] = [newAttachmentUnit('node-0-0-1'), newAttachmentUnit('node-0-3'), newAttachmentUnit('node-2-2')];
const treePlanNodes: FilingHoldingSchemeNode[] = [
newTreeNode('node-0', 3, [
newTreeNode('node-0-0', 1, [
newTreeNode('node-0-0-0', 0),
newTreeNode('node-0-0-1', 1),
newTreeNode('node-0-0-2', 0),
newTreeNode('node-0-0-3', 0),
newTreeNode('node-0-0-4', 0),
]),
newTreeNode('node-0-1', 0),
newTreeNode('node-0-2', 0),
newTreeNode('node-0-3', 2),
newTreeNode('node-0-4', 0),
]),
newTreeNode('node-1', 0, [
newTreeNode('node-1-0', 0),
newTreeNode('node-1-1', 0),
newTreeNode('node-1-2', 0),
newTreeNode('node-1-3', 0),
newTreeNode('node-1-4', 0),
]),
newTreeNode('node-2', 1, [
newTreeNode('node-2-0', 0),
newTreeNode('node-2-1', 0),
newTreeNode('node-2-2', 1),
newTreeNode('node-2-3', 0),
newTreeNode('node-2-4', 0),
]),
newTreeNode('node-3', 0),
newTreeNode('node-4', 0),
];

const leaves: FilingHoldingSchemeNode[] = FilingHoldingSchemeHandler.keepEndNodesWithResultsThatAreNOTAttachmentUnitsOnly(
treePlanNodes, attachmentUnits);

expect(leaves.length).toEqual(6);
expect(leaves[0].id).toEqual('node-0-0-1');
expect(leaves[0].count).toEqual(1);
expect(leaves[1].id).toEqual('node-0-0');
expect(leaves[1].count).toEqual(1);
expect(leaves[2].id).toEqual('node-0-3');
expect(leaves[2].count).toEqual(2);
expect(leaves[3].id).toEqual('node-0');
expect(leaves[3].count).toEqual(3);
expect(leaves[4].id).toEqual('node-2-2');
expect(leaves[4].count).toEqual(1);
expect(leaves[5].id).toEqual('node-2');
expect(leaves[5].count).toEqual(1);
});
});

describe('unitHasDirectParent', () => {
it('should be true when unitups does not contains the id', () => {
const unit = newUnit('node-2-3', 'node-2');
Expand Down Expand Up @@ -335,14 +528,15 @@ describe('FilingHoldingSchemeHandler', () => {
expect(toggleNode.children[6].count).toEqual(1);
});
});

describe('filterUnknownFacets', () => {
it('should return an empty array if the newFacets array is full of already known facets', () => {
const oldFacets: ResultFacet[] = [{ node: 'node-0', count: 1 }, { node: 'node-1', count: 65 }, ];
const newFacets: ResultFacet[] = [{ node: 'node-0', count: 5 }, { node: 'node-1', count: 42 }, ];
const oldFacets: ResultFacet[] = [{ node: 'node-0', count: 1 }, { node: 'node-1', count: 65 }];
const newFacets: ResultFacet[] = [{ node: 'node-0', count: 5 }, { node: 'node-1', count: 42 }];
expect(FilingHoldingSchemeHandler.filterUnknownFacets(oldFacets, newFacets)).toEqual([]);
});
it('should return all the facets in the newFacets array if there are no known facets', () => {
const oldFacets: ResultFacet[] = [{ node: 'node-0', count: 1 }, { node: 'node-1', count: 65 }, ];
const oldFacets: ResultFacet[] = [{ node: 'node-0', count: 1 }, { node: 'node-1', count: 65 }];
const newFacets = [{ node: 'node-2', count: 5 }];
expect(FilingHoldingSchemeHandler.filterUnknownFacets(oldFacets, newFacets)).toEqual(newFacets);
});
Expand All @@ -352,7 +546,7 @@ describe('FilingHoldingSchemeHandler', () => {
expect(FilingHoldingSchemeHandler.filterUnknownFacets(oldFacets, newFacets)).toEqual(newFacets);
});
it('should return an empty array if the newFacets array is empty', () => {
const oldFacets: ResultFacet[] = [{ node: 'node-0', count: 1 }, { node: 'node-1', count: 65 }, ];
const oldFacets: ResultFacet[] = [{ node: 'node-0', count: 1 }, { node: 'node-1', count: 65 }];
const newFacets: ResultFacet[] = [];
expect(FilingHoldingSchemeHandler.filterUnknownFacets(oldFacets, newFacets)).toEqual([]);
});
Expand All @@ -367,7 +561,7 @@ describe('FilingHoldingSchemeHandler', () => {
});
it('should return all the facets in the facets array if there are no known nodes', () => {
const nodes: FilingHoldingSchemeNode[] = [];
const facets: ResultFacet[] = [newResultFacet('node-1'), newResultFacet('node-2'), ];
const facets: ResultFacet[] = [newResultFacet('node-1'), newResultFacet('node-2')];
const unknownFacets: ResultFacet[] = FilingHoldingSchemeHandler.filterUnknownFacetsIds(nodes, facets);
expect(unknownFacets).toEqual(facets);
});
Expand All @@ -379,6 +573,7 @@ describe('FilingHoldingSchemeHandler', () => {
expect(unknownFacets).toEqual([unknowFacet]);
});
});

describe('foundChild', () => {
it('should return undefined when children is empty', () => {
const parentNode = newTreeNode('node-1', 0, []);
Expand All @@ -393,6 +588,39 @@ describe('FilingHoldingSchemeHandler', () => {
expect(FilingHoldingSchemeHandler.foundChild(parentNode, 'node-1-1')).toEqual(nodeToFound);
});
});

describe('foundNode', () => {
it('should return null if the nodes array is empty', () => {
const nodes: FilingHoldingSchemeNode[] = [];
const nodeId = '12345';
const actual = FilingHoldingSchemeHandler.foundNode(nodes, nodeId);
expect(actual).toBe(null);
});

it('should return false if the node with the specified ID is not found', () => {
const nodes: FilingHoldingSchemeNode[] = [newNode('node-1'), newNode('node-2')];
const actual = FilingHoldingSchemeHandler.foundNode(nodes, 'bad-id');
expect(actual).toBe(null);
});

it('should set the checked property of the node with the specified ID to true', () => {
const nodes = [newNode('node-1')];
const actual = FilingHoldingSchemeHandler.foundNode(nodes, 'node-1');
expect(actual).toBeDefined();
expect(actual.id).toBe('node-1');
});

it('should recursively search the child nodes if the node with the specified ID is not found', () => {
const nodes: FilingHoldingSchemeNode[] = [
newTreeNode('node-1', 1, [newNode('node-1-1')]),
newTreeNode('node-2', 1, [newNode('node-2-1')]),
];
const actual = FilingHoldingSchemeHandler.foundNode(nodes, 'node-2-1');
expect(actual).toBeDefined();
expect(actual.id).toBe('node-2-1');
});
});

describe('foundNodeAndSetCheck', () => {
it('should return false if the nodes array is empty', () => {
const nodes: FilingHoldingSchemeNode[] = [];
Expand Down Expand Up @@ -435,6 +663,7 @@ describe('FilingHoldingSchemeHandler', () => {
expect(nodes[0].children[0].checked).toBe(checked);
});
});

describe('getCountSum', () => {
it('should return 0 if the nodes array is empty', () => {
const nodes: FilingHoldingSchemeNode[] = [];
Expand All @@ -443,7 +672,7 @@ describe('FilingHoldingSchemeHandler', () => {
});
it('should return the sum of the counts of all the nodes in the array if the array is not empty', () => {
const nodes: FilingHoldingSchemeNode[] = [
newTreeNode('node-1', 1, [newTreeNode('node-1-1', 1), newTreeNode('node-1-2', 1), ]),
newTreeNode('node-1', 1, [newTreeNode('node-1-1', 1), newTreeNode('node-1-2', 1)]),
newTreeNode('node-2', 2),
newTreeNode('node-3', 3),
newTreeNode('node-4', 1),
Expand Down
Loading

0 comments on commit 1e0fb6c

Please sign in to comment.