Пример #1
0
        public AnalysisResult Analyze(string previousAssembly, string currentAssembly, string proposedVersionNumber)
        {
            var differ = new DiffAssemblies();

            var previous = new FileQuery(previousAssembly);
            var current  = new FileQuery(currentAssembly);

            var differences = differ.Execute(new List <FileQuery>
            {
                previous
            },
                                             new List <FileQuery>
            {
                current
            });

            var rule = new BreakingChangeRule();

            var breakingChange = rule.Detect(differences);

            if (breakingChange)
            {
                var semVer = SemVersion.Parse(proposedVersionNumber);

                var decidedVersionNumber = semVer.Change(semVer.Major + 1, 0, 0);

                proposedVersionNumber = decidedVersionNumber.ToString();
            }

            return(new AnalysisResult
            {
                BreakingChangesDetected = breakingChange,
                VersionNumber = proposedVersionNumber
            });
        }
Пример #2
0
        public void WhenICompareTheTwoAssembliesAndValidateTheRules()
        {
            var differ = new DiffAssemblies();

            var previous    = new FileQuery(ScenarioContext.Current.Get <string>("PreviousAssembly"));
            var newAssembly = new FileQuery(ScenarioContext.Current.Get <string>("NewAssembly"));

            var differences = differ.Execute(new List <FileQuery> {
                previous
            }, new List <FileQuery> {
                newAssembly
            });
            var rule = new BreakingChangeRule();

            var result = rule.Detect(differences);

            ScenarioContext.Current.Set(result, "Results");
        }