// Copyright (C) Stichting Deltares 2016. All rights reserved.
//
// This file is part of Ringtoets.
//
// Ringtoets is free software: you can redistribute it and/or modify
// it under the terms of the GNU General Public License as published by
// the Free Software Foundation, either version 3 of the License, or
// (at your option) any later version.
//
// This program is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU General Public License for more details.
//
// You should have received a copy of the GNU General Public License
// along with this program. If not, see .
//
// All names, logos, and references to "Deltares" are registered trademarks of
// Stichting Deltares and remain full property of Stichting Deltares at all times.
// All rights reserved.
using System.Collections.ObjectModel;
using System.Data.Entity;
using Application.Ringtoets.Storage.DbContext;
using Rhino.Mocks;
namespace Application.Ringtoets.Storage.TestUtil
{
public static class RingtoetsEntitiesHelper
{
///
/// Creates a stub using the given mock repository.
///
/// The mock repository.
/// A stubbed implementation.
public static IRingtoetsEntities CreateStub(MockRepository mockRepository)
{
DbSet projectsSet = CreateEmptyTestDbSet();
DbSet hydraylicLocationsSet = CreateEmptyTestDbSet();
DbSet failureMechanismsSet = CreateEmptyTestDbSet();
DbSet failureMechanismSectionsSet = CreateEmptyTestDbSet();
DbSet failureMechanismSectionPointsSet = CreateEmptyTestDbSet();
DbSet pipingSectionResultsSet = CreateEmptyTestDbSet();
DbSet dikeProfileEntities = CreateEmptyTestDbSet();
DbSet grassCoverErosionInwardsMetaEntities = CreateEmptyTestDbSet();
DbSet grassCoverErosionInwardsSectionResultsSet = CreateEmptyTestDbSet();
DbSet heightStructuresSectionResultsSet = CreateEmptyTestDbSet();
DbSet strengthStabilityLengthwiseConstructionSectionResultsSet = CreateEmptyTestDbSet();
DbSet technicalInnovationSectionResultsSet = CreateEmptyTestDbSet();
DbSet waterPressureAsphaltCoverSectionResultsSet = CreateEmptyTestDbSet();
DbSet closingStructureSectionResultsSet = CreateEmptyTestDbSet();
DbSet macrostabilityInwardsSectionResultsSet = CreateEmptyTestDbSet();
DbSet macrostabilityOutwardsSectionResultsSet = CreateEmptyTestDbSet();
DbSet waveImpactAsphaltCoverSectionResultsSet = CreateEmptyTestDbSet();
DbSet grassCoverErosionOutwardsSectionResultsSet = CreateEmptyTestDbSet();
DbSet grassCoverSlipOffInwardsSectionResultsSet = CreateEmptyTestDbSet();
DbSet grassCoverSlipOffOutwardsSectionResultsSet = CreateEmptyTestDbSet();
DbSet microstabilitySectionResultsSet = CreateEmptyTestDbSet();
DbSet pipingStructureSectionResultsSet = CreateEmptyTestDbSet();
DbSet duneErosionSectionResultsSet = CreateEmptyTestDbSet();
DbSet stabilityStoneCoverSectionResultsSet = CreateEmptyTestDbSet();
DbSet strengthStabilityPointConstructionSectionResultsSet = CreateEmptyTestDbSet();
DbSet assessmentSectionsSet = CreateEmptyTestDbSet();
DbSet referenceLinesSet = CreateEmptyTestDbSet();
DbSet calculationGroupsSet = CreateEmptyTestDbSet();
DbSet pipingCalculationsSet = CreateEmptyTestDbSet();
DbSet pipingCalculationsOutputsSet = CreateEmptyTestDbSet();
DbSet pipingSemiProbabilisticOutputsSet = CreateEmptyTestDbSet();
DbSet stochasticSoilModelsSet = CreateEmptyTestDbSet();
DbSet soilModelSegmentPointsSet = CreateEmptyTestDbSet();
DbSet stochasticSoilProfilesSet = CreateEmptyTestDbSet();
DbSet soilProfilesSet = CreateEmptyTestDbSet();
DbSet soilLayersSet = CreateEmptyTestDbSet();
DbSet surfaceLinesSet = CreateEmptyTestDbSet();
DbSet surfaceLinePointsSet = CreateEmptyTestDbSet();
DbSet characteristicPointsSet = CreateEmptyTestDbSet();
DbSet failureMechanismMetaSet = CreateEmptyTestDbSet();
var ringtoetsEntities = mockRepository.Stub();
ringtoetsEntities.Stub(r => r.ProjectEntities).Return(projectsSet);
ringtoetsEntities.Stub(r => r.HydraulicLocationEntities).Return(hydraylicLocationsSet);
ringtoetsEntities.Stub(r => r.FailureMechanismEntities).Return(failureMechanismsSet);
ringtoetsEntities.Stub(r => r.FailureMechanismSectionEntities).Return(failureMechanismSectionsSet);
ringtoetsEntities.Stub(r => r.FailureMechanismSectionPointEntities).Return(failureMechanismSectionPointsSet);
ringtoetsEntities.Stub(r => r.PipingSectionResultEntities).Return(pipingSectionResultsSet);
ringtoetsEntities.Stub(r => r.DikeProfileEntities).Return(dikeProfileEntities);
ringtoetsEntities.Stub(r => r.GrassCoverErosionInwardsFailureMechanismMetaEntities).Return(grassCoverErosionInwardsMetaEntities);
ringtoetsEntities.Stub(r => r.GrassCoverErosionInwardsSectionResultEntities).Return(grassCoverErosionInwardsSectionResultsSet);
ringtoetsEntities.Stub(r => r.HeightStructuresSectionResultEntities).Return(heightStructuresSectionResultsSet);
ringtoetsEntities.Stub(r => r.StrengthStabilityLengthwiseConstructionSectionResultEntities).Return(strengthStabilityLengthwiseConstructionSectionResultsSet);
ringtoetsEntities.Stub(r => r.TechnicalInnovationSectionResultEntities).Return(technicalInnovationSectionResultsSet);
ringtoetsEntities.Stub(r => r.WaterPressureAsphaltCoverSectionResultEntities).Return(waterPressureAsphaltCoverSectionResultsSet);
ringtoetsEntities.Stub(r => r.ClosingStructureSectionResultEntities).Return(closingStructureSectionResultsSet);
ringtoetsEntities.Stub(r => r.MacrostabilityInwardsSectionResultEntities).Return(macrostabilityInwardsSectionResultsSet);
ringtoetsEntities.Stub(r => r.MacrostabilityOutwardsSectionResultEntities).Return(macrostabilityOutwardsSectionResultsSet);
ringtoetsEntities.Stub(r => r.WaveImpactAsphaltCoverSectionResultEntities).Return(waveImpactAsphaltCoverSectionResultsSet);
ringtoetsEntities.Stub(r => r.GrassCoverErosionOutwardsSectionResultEntities).Return(grassCoverErosionOutwardsSectionResultsSet);
ringtoetsEntities.Stub(r => r.GrassCoverSlipOffInwardsSectionResultEntities).Return(grassCoverSlipOffInwardsSectionResultsSet);
ringtoetsEntities.Stub(r => r.GrassCoverSlipOffOutwardsSectionResultEntities).Return(grassCoverSlipOffOutwardsSectionResultsSet);
ringtoetsEntities.Stub(r => r.MicrostabilitySectionResultEntities).Return(microstabilitySectionResultsSet);
ringtoetsEntities.Stub(r => r.PipingStructureSectionResultEntities).Return(pipingStructureSectionResultsSet);
ringtoetsEntities.Stub(r => r.DuneErosionSectionResultEntities).Return(duneErosionSectionResultsSet);
ringtoetsEntities.Stub(r => r.StabilityStoneCoverSectionResultEntities).Return(stabilityStoneCoverSectionResultsSet);
ringtoetsEntities.Stub(r => r.StrengthStabilityPointConstructionSectionResultEntities).Return(strengthStabilityPointConstructionSectionResultsSet);
ringtoetsEntities.Stub(r => r.AssessmentSectionEntities).Return(assessmentSectionsSet);
ringtoetsEntities.Stub(r => r.ReferenceLinePointEntities).Return(referenceLinesSet);
ringtoetsEntities.Stub(r => r.CalculationGroupEntities).Return(calculationGroupsSet);
ringtoetsEntities.Stub(r => r.PipingCalculationEntities).Return(pipingCalculationsSet);
ringtoetsEntities.Stub(r => r.PipingCalculationOutputEntities).Return(pipingCalculationsOutputsSet);
ringtoetsEntities.Stub(r => r.PipingSemiProbabilisticOutputEntities).Return(pipingSemiProbabilisticOutputsSet);
ringtoetsEntities.Stub(r => r.StochasticSoilModelEntities).Return(stochasticSoilModelsSet);
ringtoetsEntities.Stub(r => r.StochasticSoilModelSegmentPointEntities).Return(soilModelSegmentPointsSet);
ringtoetsEntities.Stub(r => r.StochasticSoilProfileEntities).Return(stochasticSoilProfilesSet);
ringtoetsEntities.Stub(r => r.SoilProfileEntities).Return(soilProfilesSet);
ringtoetsEntities.Stub(r => r.SoilLayerEntities).Return(soilLayersSet);
ringtoetsEntities.Stub(r => r.SurfaceLineEntities).Return(surfaceLinesSet);
ringtoetsEntities.Stub(r => r.SurfaceLinePointEntities).Return(surfaceLinePointsSet);
ringtoetsEntities.Stub(r => r.CharacteristicPointEntities).Return(characteristicPointsSet);
ringtoetsEntities.Stub(r => r.PipingFailureMechanismMetaEntities).Return(failureMechanismMetaSet);
return ringtoetsEntities;
}
private static DbSet CreateEmptyTestDbSet() where T : class
{
return new TestDbSet(new ObservableCollection());
}
}
}