public void Ctor_InjectedAlgoritmsAddedToPrivateList() { var algs = new IExecutableAlgorithm[] { new FindBasicRelationships(), new ResolveRelationshipNames() }; var proc = new FamilyTreeProcessor(algs); Assert.AreEqual(algs.Length, proc.Algorithms.Length); }
public void Execute_IfAnAlgorithmFailsFactsAreCleared() { var findBasicMock = new Mock <IFindBasicRelationships>(); var resolveMock = new Mock <IResolveRelationshipNames>(); resolveMock.Setup(x => x.Execute(It.IsAny <IFamilyTree>(), It.IsAny <IFamilyMember>())).Throws(new Exception()); var treeMock = new Mock <IFamilyTree>(); treeMock.Setup(x => x.ClearMemberFacts()); var membMock = new Mock <IFamilyMember>(); var proc = new FamilyTreeProcessor(new IExecutableAlgorithm[] { findBasicMock.Object, resolveMock.Object }); Assert.ThrowsException <Exception>(new Action(() => { proc.Process(treeMock.Object, membMock.Object); })); treeMock.Verify(x => x.ClearMemberFacts(), Times.Once); }