Exemple #1
0
        public void RemoveStructure_FailureMechanismNull_ThrowsArgumentNullException()
        {
            // Call
            void Call() => StabilityPointStructuresDataSynchronizationService.RemoveStructure(new TestStabilityPointStructure(), null);

            // Assert
            var exception = Assert.Throws <ArgumentNullException>(Call);

            Assert.AreEqual("failureMechanism", exception.ParamName);
        }
Exemple #2
0
        public void RemoveStructure_FullyConfiguredFailureMechanism_RemovesStructureAndClearsDependentData()
        {
            // Setup
            StabilityPointStructuresFailureMechanism failureMechanism = CreateFullyConfiguredFailureMechanism();
            StabilityPointStructure structure = failureMechanism.StabilityPointStructures[0];

            StructuresCalculation <StabilityPointStructuresInput>[] calculationsWithStructure = failureMechanism.Calculations
                                                                                                .Cast <StructuresCalculation <StabilityPointStructuresInput> >()
                                                                                                .Where(c => ReferenceEquals(c.InputParameters.Structure, structure))
                                                                                                .ToArray();
            StructuresCalculation <StabilityPointStructuresInput>[] calculationsWithOutput = calculationsWithStructure.Where(c => c.HasOutput)
                                                                                             .ToArray();

            // Precondition
            CollectionAssert.IsNotEmpty(calculationsWithOutput);
            CollectionAssert.IsNotEmpty(calculationsWithStructure);

            // Call
            IEnumerable <IObservable> affectedObjects = StabilityPointStructuresDataSynchronizationService.RemoveStructure(structure, failureMechanism);

            // Assert
            // Note: To make sure the clear is performed regardless of what is done with
            // the return result, no ToArray() should be called before these assertions:
            CollectionAssert.DoesNotContain(failureMechanism.StabilityPointStructures, structure);
            foreach (StructuresCalculation <StabilityPointStructuresInput> calculation in calculationsWithStructure)
            {
                Assert.IsNull(calculation.InputParameters.Structure);
            }

            foreach (StructuresCalculation <StabilityPointStructuresInput> calculation in calculationsWithOutput)
            {
                Assert.IsFalse(calculation.HasOutput);
            }

            IObservable[] array = affectedObjects.ToArray();
            Assert.AreEqual(1 + calculationsWithOutput.Length + calculationsWithStructure.Length, array.Length);
            CollectionAssert.Contains(array, failureMechanism.StabilityPointStructures);
            foreach (StructuresCalculation <StabilityPointStructuresInput> calculation in calculationsWithStructure)
            {
                CollectionAssert.Contains(array, calculation.InputParameters);
            }

            foreach (StructuresCalculation <StabilityPointStructuresInput> calculation in calculationsWithOutput)
            {
                CollectionAssert.Contains(array, calculation);
            }
        }
 protected override IEnumerable <IObservable> RemoveObjectAndDependentData(StabilityPointStructure removedObject)
 {
     return(StabilityPointStructuresDataSynchronizationService.RemoveStructure(removedObject, FailureMechanism));
 }