public void ThenMyScoreShouldBe(int expected)
        {
            var analyzer  = new ResumeAnalyzer();
            var container = BuildContainer();
            var result    = analyzer.Analyze(_resume, container);

            result.Score.ShouldBe(expected);
        }
Beispiel #2
0
        protected AnalysisResult Analyze(ResumeInfo resume,
                                         IKeywordBonusProvider?bonusProvider = null,
                                         [CallerMemberName] string caller    = "")
        {
            InitializeResultPublisherAsNeeded();


            var legacyAnalyzer = new ResumeAnalyzer();
            var newAnalyzer    = new RewrittenAnalyzer();

            bonusProvider ??= BuildBonusProvider();

            IContainer container = BuildTestContainer(bonusProvider);

            try
            {
                return(Scientist.Science <AnalysisResult>(caller,
                                                          experiment =>
                {
                    experiment.Use(() => legacyAnalyzer.Analyze(resume, container));
                    // experiment.Try(() => newAnalyzer.Analyze(resume, container));
                    experiment.Compare((x, y) => x.Score == y.Score);
                }));
            }
            catch (AggregateException agEx)     // Scientist wraps exceptions into an aggregate
            {
                var opEx = agEx.InnerException; // Scientist wraps exceptions into an OperationException
                if (opEx?.InnerException != null)
                {
                    throw opEx.InnerException; // This is the actual exception that we threw on comparing assertions
                }
                else if (opEx != null)
                {
                    throw opEx;
                }
                else
                {
                    throw;
                }
            }
        }