コード例 #1
0
        public void Run_WhenLatestItemNotFound_ShouldReturnContextItem()
        {
            //arrange
            Item fakeContextItem = ItemHelper.CreateItem("CAD", string.Empty);

            fakeContextItem.setProperty("gag_migration_edit_flag", "1");
            fakeContextItem.setProperty("config_id", GenerateConfigId());
            fakeContextItem.setNewID();

            Item errorItem = ItemHelper.CreateItem(string.Empty, string.Empty);

            errorItem.loadAML(EmptyResult);

            IDataAccessLayer fakeDal = Substitute.For <IDataAccessLayer>();

            fakeDal.NewItem(Arg.Any <string>(), Arg.Any <string>()).Returns(ItemHelper.CreateItem("CAD", string.Empty));
            fakeDal.ApplyItem(Arg.Any <Item>()).Returns(errorItem);
            var testClass = new TestClass(fakeDal);

            //act
            Item actualItem = testClass.Run(fakeContextItem);

            //assert
            Assert.AreEqual(actualItem.getID(), fakeContextItem.getID());
        }
コード例 #2
0
        public void Run_InvalidFlagValue_ShouldThrowItemException(string flagValue)
        {
            //arrange
            const string expectedError   = "Unknown flag value";
            Item         fakeContextItem = ItemHelper.CreateItem("GAG_GECO ChangeControlled", string.Empty);

            Item fakeAffectedItem = ItemHelper.CreateItem("GAG_GrammerChangeControlled", "get");

            fakeAffectedItem.setProperty("gag_migration_edit_flag", flagValue);

            IDataAccessLayer fakeDal = Substitute.For <IDataAccessLayer>();

            fakeDal.ApplyItem(Arg.Any <Item>()).Returns(fakeAffectedItem);
            fakeDal.NewItem("GAG_GrammerChangeControlled", "get").Returns(fakeAffectedItem);
            fakeDal.NewError(Arg.Any <string>()).Returns(ci =>
            {
                Item error = ItemHelper.CreateItem(string.Empty, string.Empty);
                error.loadAML(string.Format(CultureInfo.CurrentCulture, ErrorResultTemplate, ci.ArgAt <string>(0)));
                return(error);
            });
            var testClass = new TestClass(fakeDal);

            //act
            //assert
            ItemException exception   = Assert.Throws <ItemException>(() => testClass.Run(fakeContextItem));
            string        actualError = exception?.ErrorItem?.getErrorString();

            Assert.AreEqual(actualError, expectedError);
        }
コード例 #3
0
        public void Run_WhenContextItemHasDifferentFlagValue_ShouldThrowItemException()
        {
            //arrange
            const string expectedError   = "The property gag_migration_edit_flag cannot be changed";
            Item         fakeContextItem = ItemHelper.CreateItem("CAD", string.Empty);

            fakeContextItem.setProperty("gag_migration_edit_flag", "0");
            fakeContextItem.setProperty("config_id", GenerateConfigId());

            Item fakeLatestItem = ItemHelper.CreateItem("CAD", string.Empty);

            fakeLatestItem.setProperty("gag_migration_edit_flag", "1");
            fakeLatestItem.setProperty("config_id", GenerateConfigId());

            IDataAccessLayer fakeDal = Substitute.For <IDataAccessLayer>();

            fakeDal.ApplyItem(Arg.Any <Item>()).Returns(fakeLatestItem);
            fakeDal.NewItem(Arg.Any <string>(), Arg.Any <string>()).Returns(ItemHelper.CreateItem("CAD", string.Empty));

            var testClass = new TestClass(fakeDal);
            //act
            //assert
            ItemException exception   = Assert.Throws <ItemException>(() => testClass.Run(fakeContextItem));
            string        actualError = exception.Message;

            Assert.AreEqual(actualError, expectedError);
        }
コード例 #4
0
        public void Run_MigrationFlagIs1_ShouldReturnContextItem()
        {
            //arrange
            Item fakeContextItem = ItemHelper.CreateItem("GAG_GECO ChangeControlled", string.Empty);

            fakeContextItem.setNewID();

            Item fakeAffectedItem = ItemHelper.CreateItem("GAG_GrammerChangeControlled", "get");

            fakeAffectedItem.setProperty("gag_migration_edit_flag", "1");

            IDataAccessLayer fakeDal = Substitute.For <IDataAccessLayer>();

            fakeDal.ApplyItem(Arg.Any <Item>()).Returns(fakeAffectedItem);
            fakeDal.NewItem("GAG_GrammerChangeControlled", "get").Returns(fakeAffectedItem);
            var testClass = new TestClass(fakeDal);

            //act
            Item result = testClass.Run(fakeContextItem);

            //assert
            Assert.AreEqual(result.getID(), fakeContextItem.getID());
        }