コード例 #1
0
        public void ShouldFail_WhenExternalRatingApprovalServiceIsNotApprovedAndRatingIsLowerThanRatingCeiling()
        {
            //ARRANGE
            int rating       = 1;
            int ratingCeling = 2;

            //ACT
            using (ShimsContext.Create())
            {
                ShimNotificationService.AllInstances.NotifyInt32 = (c, s) => { };
                ShimExternalRatingApprovalService.AllInstances.IsApprovedInt32 = (c, s) => { return(false); };
                ShimUtils.AllInstances.GetRatingDecoration = (s) => { return(true); };

                ShimHardClass.StaticConstructor = () => { };
                var testClass = new HardClass();

                PrivateObject privSub = new PrivateObject(testClass, new PrivateType(typeof(HardClass)));
                // var privateObject = new PrivateObject(testClass);
                privSub.SetField("notificationService", new NotificationService());
                privSub.SetField("externalRatingApprovalService", new ExternalRatingApprovalService());
                FieldInfo UTILS = typeof(HardClass).GetField("UTILS", BindingFlags.NonPublic | BindingFlags.Static);
                UTILS.SetValue("UTILS", new Utils());
                FieldInfo HARD_CACHE = typeof(HardClass).GetField("HARD_CACHE", BindingFlags.NonPublic | BindingFlags.Static);
                HARD_CACHE.SetValue("HARD_CACHE", 22);
                string result = testClass.CreateRatingString(rating, ratingCeling);
                //ASSERT
                Assert.AreEqual("NOT-APP", result);
            }
        }
コード例 #2
0
        public void GivenRatingIsSameAsHardCache_ShouldContainCached()
        {
            //ARRANGE AND ACT
            int rating       = 22;
            int ratingCeling = 44;

            using (ShimsContext.Create())
            {
                ShimNotificationService.AllInstances.NotifyInt32 = (c, s) => { };
                ShimExternalRatingApprovalService.AllInstances.IsApprovedInt32 = (c, s) => { return(true); };
                ShimUtils.AllInstances.GetRatingDecoration = (s) => { return(true); };
                ShimHardClass.StaticConstructor            = () => { };
                var testClass = new HardClass();

                PrivateObject privSub = new PrivateObject(testClass, new PrivateType(typeof(HardClass)));
                // var privateObject = new PrivateObject(testClass);
                privSub.SetField("notificationService", new NotificationService());
                privSub.SetField("externalRatingApprovalService", new ExternalRatingApprovalService());
                FieldInfo UTILS = typeof(HardClass).GetField("UTILS", BindingFlags.NonPublic | BindingFlags.Static);
                UTILS.SetValue("UTILS", new Utils());
                FieldInfo HARD_CACHE = typeof(HardClass).GetField("HARD_CACHE", BindingFlags.NonPublic | BindingFlags.Static);
                HARD_CACHE.SetValue("HARD_CACHE", 22);
                string result = testClass.CreateRatingString(rating, ratingCeling);
                //ASSERT
                Assert.AreEqual("HIGH=" + rating + "-CACHEDTrue", result);
            }
        }
コード例 #3
0
        public void ShouldFail_WhenRatingIsHigherThanCeiling()
        {
            //ARRANGE AND ACT
            int rating       = 2;
            int ratingCeling = 1;

            using (ShimsContext.Create())
            {
                ShimHardClass.StaticConstructor = () => { };
                var testClass = new HardClass();
                //ASSERT
                Should.Throw <ArgumentException>(() => {
                    testClass.CreateRatingString(rating, ratingCeling);
                }).Message.ShouldBe("Cannot be over the hard ceiling");
                // rest of the test logic
            }
        }