public void GetRelatedGridFormat_FieldTypeNumberFiveDecimals_ReturnsString()
        {
            // Arrange
            const string type           = "Float";
            const string percentageSign = @"\%";
            const string expected       = ",#0.00000";

            var displayFormat = SPNumberFormatTypes.FiveDecimals;
            var field         = new ShimSPFieldNumber()
            {
                ShowAsPercentageGet = () => true,
                DisplayFormatGet    = () => displayFormat
            };

            ShimSPField.AllInstances.TypeGet = _ => SPFieldType.Number;

            // Act
            var actual = (string)privateObj.Invoke(
                GetRelatedGridFormatMethodName,
                BindingFlags.Static | BindingFlags.NonPublic,
                new object[] { type, string.Empty, field.Instance, spWeb.Instance });

            // Assert
            actual.ShouldBe($"{expected}{percentageSign}");
        }
        public void ProcessField_Always_ReturnExpectedValueForNumber()
        {
            // Arrange
            SPWeb spWeb = new ShimSPWeb
            {
                LocaleGet = () => new CultureInfo("en-US")
            };
            SPListItem listItem = new ShimSPListItem
            {
                ItemGetGuid = guidValue => "1"
            };
            SPField field = new ShimSPFieldNumber
            {
                ShowAsPercentageGet = () => true
            };

            new ShimSPField(field)
            {
                TypeGet = () => SPFieldType.Number
            };

            // Act
            var result = _privateObject.Invoke(
                "ProcessField",
                spWeb,
                listItem,
                field) as string;

            // Assert
            this.ShouldSatisfyAllConditions(
                () => result.ShouldNotBeNull(),
                () => result.ShouldBe("100%"));
        }