private static Engine EngineFor(Org.Neo4j.Consistency.report.ConsistencyReport_LabelScanConsistencyReport report)
        {
            Engine engine = mock(typeof(Engine));

            when(engine.report()).thenReturn(report);
            return(engine);
        }
//JAVA TO C# CONVERTER TODO TASK: Most Java annotations will not have direct .NET equivalent attributes:
//ORIGINAL LINE: @Test void shouldReportNodeWithoutExpectedLabelWhenLabelsAreInlineIndexToStore()
        internal virtual void ShouldReportNodeWithoutExpectedLabelWhenLabelsAreInlineIndexToStore()
        {
            // given
            int nodeId = 42;

            long[] storeLabelIds = new long[] { 7, 9 };
            long[] indexLabelIds = new long[] { 9, 10 };

            NodeRecord node = inUse(WithInlineLabels(new NodeRecord(nodeId, false, 0, 0), storeLabelIds));

            Org.Neo4j.Consistency.report.ConsistencyReport_LabelScanConsistencyReport report = mock(typeof(Org.Neo4j.Consistency.report.ConsistencyReport_LabelScanConsistencyReport));

            // when
            Checker(indexLabelIds, false).checkReference(null, node, EngineFor(report), null);

            // then
            verify(report).nodeDoesNotHaveExpectedLabel(node, 10);
        }
//JAVA TO C# CONVERTER TODO TASK: Most Java annotations will not have direct .NET equivalent attributes:
//ORIGINAL LINE: @Test void shouldReportNodeNotInUse()
        internal virtual void ShouldReportNodeNotInUse()
        {
            // given
            int  nodeId  = 42;
            long labelId = 7;

            Org.Neo4j.Consistency.report.ConsistencyReport_LabelScanConsistencyReport report = mock(typeof(Org.Neo4j.Consistency.report.ConsistencyReport_LabelScanConsistencyReport));
            NodeRecord node = notInUse(new NodeRecord(nodeId, false, 0, 0));

            // when
            Checker(new long[] { labelId }, true).checkReference(null, node, EngineFor(report), null);

            // then
            verify(report).nodeNotInUse(node);
        }
//JAVA TO C# CONVERTER TODO TASK: Most Java annotations will not have direct .NET equivalent attributes:
//ORIGINAL LINE: @Test void shouldRemainSilentWhenEverythingIsInOrder()
        internal virtual void ShouldRemainSilentWhenEverythingIsInOrder()
        {
            // given
            int nodeId  = 42;
            int labelId = 7;

            NodeRecord node = WithInlineLabels(inUse(new NodeRecord(nodeId, false, 0, 0)), labelId);

            Org.Neo4j.Consistency.report.ConsistencyReport_LabelScanConsistencyReport report = mock(typeof(Org.Neo4j.Consistency.report.ConsistencyReport_LabelScanConsistencyReport));

            // when
            Checker(new long[] { labelId }, true).checkReference(null, node, EngineFor(report), null);

            // then
            verifyNoMoreInteractions(report);
        }
//JAVA TO C# CONVERTER TODO TASK: Most Java annotations will not have direct .NET equivalent attributes:
//ORIGINAL LINE: @Test void reportNodeWithoutLabelsWhenLabelsAreDynamic()
        internal virtual void ReportNodeWithoutLabelsWhenLabelsAreDynamic()
        {
            int nodeId = 42;

            long[] indexLabelIds   = new long[] { 3, 7, 9, 10 };
            long[] storeLabelIds   = new long[] {};
            long[] missingLabelIds = new long[] { 3, 7, 9, 10 };

            RecordAccessStub recordAccess = new RecordAccessStub();
            NodeRecord       node         = inUse(WithDynamicLabels(recordAccess, new NodeRecord(nodeId, false, 0, 0), storeLabelIds));

            Org.Neo4j.Consistency.report.ConsistencyReport_LabelScanConsistencyReport report = mock(typeof(Org.Neo4j.Consistency.report.ConsistencyReport_LabelScanConsistencyReport));

            // when
            CheckerEngine <LabelScanDocument, Org.Neo4j.Consistency.report.ConsistencyReport_LabelScanConsistencyReport> engine = recordAccess.Engine(null, report);

            Checker(indexLabelIds, true).checkReference(null, node, engine, recordAccess);
            recordAccess.CheckDeferred();

            // then
            foreach (long missingLabelId in missingLabelIds)
            {
                verify(report).nodeDoesNotHaveExpectedLabel(node, missingLabelId);
            }
        }
//JAVA TO C# CONVERTER TODO TASK: Most Java annotations will not have direct .NET equivalent attributes:
//ORIGINAL LINE: @Test void shouldReportNodeWithoutExpectedLabelWhenLabelsAreDynamicBothDirections()
        internal virtual void ShouldReportNodeWithoutExpectedLabelWhenLabelsAreDynamicBothDirections()
        {
            // given
            int nodeId = 42;

            long[] indexLabelIds = new long[] { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 };
            long[] storeLabelIds = new long[] { 1, 2, 3, 4, 5, 6, 8, 9, 10, 11 };

            RecordAccessStub recordAccess = new RecordAccessStub();
            NodeRecord       node         = inUse(WithDynamicLabels(recordAccess, new NodeRecord(nodeId, false, 0, 0), storeLabelIds));

            Org.Neo4j.Consistency.report.ConsistencyReport_LabelScanConsistencyReport report = mock(typeof(Org.Neo4j.Consistency.report.ConsistencyReport_LabelScanConsistencyReport));

            // when
            CheckerEngine <LabelScanDocument, Org.Neo4j.Consistency.report.ConsistencyReport_LabelScanConsistencyReport> engine = recordAccess.Engine(null, report);

            Checker(indexLabelIds, true).checkReference(null, node, engine, recordAccess);
            recordAccess.CheckDeferred();

            // then
            verify(report).nodeDoesNotHaveExpectedLabel(node, 7);
            verify(report).nodeLabelNotInIndex(node, 11);
        }