Пример #1
0
        public void CalculateSignatureSizeValue_IFArgumentSatisfied_SignatureSizeLengthAndWidthEqualReturnValuesFromManager()
        {
            _mockView.SetupProperty(r => r.PageCount, 2);
            _mockView.SetupProperty(r => r.PagesPerSignature, "2pg");
            _mockView.SetupProperty(r => r.PageSizeLength, 5);
            _mockView.SetupProperty(r => r.PageSizeWidth, 10);
            _mockView.SetupProperty(r => r.SignatureSizeWidth);
            _mockView.SetupProperty(r => r.Bleeds);
            _mockView.SetupProperty(r => r.SignatureSizeLength);;
            SignatureSizeLength sigLength = new SignatureSizeLength("2pg", 4, 5, 5);
            SignatureSizeWidth  sigWidth  = new SignatureSizeWidth("2pg", 4, 5, 5);

            _mockSystemVariablesManager.Setup(r => r.ReturnNudVariables())
            .Returns(new PrintingAppRepository.SystemVariables.Models.SystemVariables());

            _mockImpositionCalculatorManager.Setup(r => r.ReturnSignatureSizeLength(It.IsAny <SignatureSizeLength>()))
            .Returns(5);

            _mockImpositionCalculatorManager.Setup(r => r.ReturnSignatureSizeWidth(It.IsAny <SignatureSizeWidth>()))
            .Returns(15.2F);

            _mockView.Raise(r => r.CalculateSignatureSize += null, new EventArgs());

            Assert.IsTrue(_mockView.Object.SignatureSizeLength == _mockImpositionCalculatorManager.Object.ReturnSignatureSizeLength(sigLength) &&
                          _mockView.Object.SignatureSizeWidth == _mockImpositionCalculatorManager.Object.ReturnSignatureSizeWidth(sigWidth));
        }
        /// <summary>
        /// Calculate the SignatureSizeLength. Depending on the PagesPerSignature variables, it can
        /// either be calculated via an automatic multiplier or it can be manually set. Please see
        /// below for more information
        ///
        /// The default is set to'2pg', this is set in the model when null is passed through
        /// as the multiplier in lengthParameters.
        /// If the PagesPerSignature is either a 'right angle' or 'right angle album', then it must
        /// be set manually as there are no correlation between the lengths.
        /// If the PagesPerSignature is equal to 'tear apart one', the multipliers can be calculated
        /// as it is the page / 4
        /// If PagerPerSignature is either 'parallel' or 'standard', then the default multipliers
        /// will work fine.
        /// </summary>
        /// <param name="lengthParamaters"></param>
        /// <returns></returns>
        public float ReturnSignatureSizeLength(SignatureSizeLength lengthParamaters)
        {
            if (lengthParamaters.PagesPerSignature.Contains("right angle"))
            {
                //No need for the 8pg right angle as the default will work
                switch (lengthParamaters.PagesPerSignature.ToLower())
                {
                case "12pg right angle":
                case "32pg right angle":
                    lengthParamaters.ValueOneMultiplier  = 3;
                    lengthParamaters.ValueTwoMultiplier  = 3;
                    lengthParamaters.ValueThreeMultipler = 3;
                    break;

                case "16pg right angle":
                case "24pg right angle":
                    lengthParamaters.ValueOneMultiplier  = 2;
                    lengthParamaters.ValueTwoMultiplier  = 2;
                    lengthParamaters.ValueThreeMultipler = 2;
                    break;

                case "16pg right angle album":
                    lengthParamaters.ValueOneMultiplier  = 4;
                    lengthParamaters.ValueTwoMultiplier  = 4;
                    lengthParamaters.ValueThreeMultipler = 4;
                    break;
                }
            }
            else if (lengthParamaters.PagesPerSignature.Contains("tear apart"))
            {
                //Regex only pulls ints
                int amountOfPages = int.Parse(Regex.Match(lengthParamaters.PagesPerSignature, "\\d+")
                                              .Value);

                int allMultipliers = amountOfPages / 4;

                lengthParamaters.ValueOneMultiplier  = allMultipliers;
                lengthParamaters.ValueTwoMultiplier  = allMultipliers;
                lengthParamaters.ValueThreeMultipler = allMultipliers;
            }

            return((lengthParamaters.Length * lengthParamaters.ValueOneMultiplier)
                   + (lengthParamaters.HeadTrim * lengthParamaters.ValueTwoMultiplier)
                   + (lengthParamaters.FootTrim * lengthParamaters.ValueThreeMultipler));
        }