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()); }
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); }
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); }
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()); }