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