Class SingleCellStreamingAddTest

java.lang.Object
ubic.gemma.core.util.test.BaseTest5
ubic.gemma.core.util.test.BaseDatabaseTest5
ubic.gemma.persistence.service.expression.experiment.SingleCellStreamingAddTest

@ContextConfiguration public class SingleCellStreamingAddTest extends BaseDatabaseTest5
Tests for the streaming overload of SingleCellExpressionExperimentService.addSingleCellDataVectors(ExpressionExperiment, QuantitationType, SingleCellDimension, Stream, String, boolean, boolean).

Mirrors the in-memory-H2 harness of SingleCellExpressionExperimentServiceTest, including its mock beans for the read/write service split. These exercise the single-pass path added to stop single-cell imports from materialising every vector before writing any of them.

The audit event is not asserted here. This context wires the impl directly with no AOP proxy, so the @Audited advice never fires; aspect coverage lives in AuditedAspectTest.

  • Constructor Details

    • SingleCellStreamingAddTest

      public SingleCellStreamingAddTest()
  • Method Details

    • setUp

      @BeforeEach public void setUp()
    • resetMocks

      @AfterEach public void resetMocks()
    • testStreamingAddPersistsAllVectors

      @Test public void testStreamingAddPersistsAllVectors()
    • testStreamingAddMatchesCollectionVariant

      @Test public void testStreamingAddMatchesCollectionVariant()
    • testStreamingAddAppliesSparsityMetricsForPreferredQt

      @Test public void testStreamingAddAppliesSparsityMetricsForPreferredQt()
    • testStreamingAddDoesNotApplySparsityForNonPreferredQt

      @Test public void testStreamingAddDoesNotApplySparsityForNonPreferredQt()
    • testStreamingAddCreatesCellTypeFactorWhenPreferred

      @Test public void testStreamingAddCreatesCellTypeFactorWhenPreferred()
    • testStreamingAddRejectsEmptyStream

      @Test public void testStreamingAddRejectsEmptyStream()
    • testStreamingAddRejectsWrongQuantitationType

      @Test public void testStreamingAddRejectsWrongQuantitationType()
    • testStreamingAddRejectsWrongSingleCellDimension

      @Test public void testStreamingAddRejectsWrongSingleCellDimension()
    • testStreamingAddRejectsDuplicateQuantitationTypeName

      @Test public void testStreamingAddRejectsDuplicateQuantitationTypeName()
    • testStreamingAddConsumesSourceExactlyOnce

      @Test public void testStreamingAddConsumesSourceExactlyOnce()
      Single-pass consumption is the whole point of the streaming overload: if the implementation ever materialises the source internally (a toList() slipped into the path, say), the memory saving evaporates silently and only this test notices. The counting iterator records every pull.
    • testStreamingAddAcceptsPersistentDimensionFromPriorAdd

      @Test public void testStreamingAddAcceptsPersistentDimensionFromPriorAdd()
      Covers the scdJustCreated branch of the streaming validator: re-adding vectors against a dimension that is already wired to existing vectors must be allowed.