/// <summary> /// Create a new charge category /// </summary> /// <param name="chargeCategory">The charge category to create</param> public void Create(ChargeCategory chargeCategory) { const string SQL_STATEMENT = @" INSERT INTO Pricing.ChargeCategory ( BusinessId, Name, IsActive, UpdatedByUserId ) VALUES ( @BusinessId, @Name, 1, @UpdatedByUserId ) SELECT @Id = SCOPE_IDENTITY()"; var parameters = new List<SqlParameter> { DbHelper.CreateParameter(ChargeCategoryMapper.Parameters.BusinessId, chargeCategory.BusinessId), DbHelper.CreateParameter(ChargeCategoryMapper.Parameters.Name, chargeCategory.Name) }; SqlParameter outputKey; parameters.Add(outputKey = DbHelper.CreateParameterOut<int>(ChargeCategoryMapper.Parameters.Id, SqlDbType.Int)); // Add auditing parameters AuditFieldsHelper.PopulateAuditFields(parameters); DbHelper.ExecuteNonQueryCommand(SQL_STATEMENT, parameters: parameters); chargeCategory.Id = DbHelper.ParameterValue<int>(outputKey); }
/// <summary> ///Modify an existing charge category /// </summary> /// <param name="chargeCategory">The charge category to modify</param> public void Modify(ChargeCategory chargeCategory) { var SQL_STATEMENT = @" UPDATE Pricing.ChargeCategory SET Name = @Name, UpdatedByUserId = @UpdatedByUserId WHERE Id = @Id"; var parameters = new List<SqlParameter> { DbHelper.CreateParameter(ChargeCategoryMapper.Parameters.Name, chargeCategory.Name), DbHelper.CreateParameter(ChargeCategoryMapper.Parameters.Id, chargeCategory.Id) }; // Add auditing parameters AuditFieldsHelper.PopulateAuditFields(parameters); DbHelper.ExecuteNonQueryCommand(SQL_STATEMENT, parameters: parameters); }
public void CreateExistingChargeCategoryThrowsException() { // Arrange const long BUSINESS_ID = 501; using (new TestDataHelper(GetTestQuery(TestQuery.PopulateChargeTestData), GetTestQuery(TestQuery.CleanupUnitTestData))) { var chargeCategory = new ChargeCategory { BusinessId = BUSINESS_ID, Name = "Bar" }; // Act chargeCategoryDao.Create(chargeCategory); } }
public void CreateInvalidChargeCategoryThrowsException() { // Arrange const int INVALID_BUSINESS_ID = 0; var chargeCategory = new ChargeCategory { BusinessId = INVALID_BUSINESS_ID, Name = "Rum" }; // Act chargeCategoryDao.Create(chargeCategory); }
public void CreateIsSuccessful() { // Arrange const long BUSINESS_ID = 501; using (new TestDataHelper(GetTestQuery(TestQuery.PopulateChargeTestData), GetTestQuery(TestQuery.CleanupUnitTestData))) { var chargeCategory = new ChargeCategory { BusinessId = BUSINESS_ID, Name = "Room Service" }; // Act chargeCategoryDao.Create(chargeCategory); // Assert ChargeCategory addedChargeCategory = chargeCategoryDao.GetChargeCategoriesByBusinessId(BUSINESS_ID).FirstOrDefault(x => x.Id == chargeCategory.Id); Assert.IsNotNull(addedChargeCategory, "Charge category was not added"); Assert.AreEqual(chargeCategory.BusinessId, addedChargeCategory.BusinessId, "Business id was not added correctly."); Assert.AreEqual(chargeCategory.Name, addedChargeCategory.Name, "Name was not added correctly."); } }
public void ModifyChargeAndCreateCategoryCallsCorrectMethods() { // Arrange const long BUSINESS_ID = 501; var chargeDaoMock = MockRepository.GenerateMock<IChargeDao>(); var chargeCategoryDaoMock = MockRepository.GenerateMock<IChargeCategoryDao>(); var eventTrackingManagerMock = MockRepository.GenerateMock<IEventTrackingManager>(); settingsManager.ChargeDao = chargeDaoMock; settingsManager.ChargeCategoryDao = chargeCategoryDaoMock; settingsManager.EventTrackingManager = eventTrackingManagerMock; var chargeCategory = new ChargeCategory { BusinessId = BUSINESS_ID, Name = "Room Stuff" }; var charge = new Charge { Id = 1, ChargeCategory = chargeCategory, ChargeType = new ChargeType {Type = ChargeTypeEnum.Charge}, ChargeCostType = new ChargeCostType {Type = ChargeCostTypeEnum.Variable}, Name = "TV" }; chargeDaoMock.Expect(c => c.Modify(charge)); chargeDaoMock.Expect(c => c.GetChargesByBusinessId(Arg<long>.Is.Anything, Arg<string>.Is.Anything)).Return(new List<Charge>()); chargeCategoryDaoMock.Expect(c => c.Create(chargeCategory)).WhenCalled(delegate { chargeCategory.Id = 1; }); eventTrackingManagerMock.Expect(be => be.CreateBusinessEventAsync(Arg<long>.Is.Anything, Arg<BusinessEventTypesEnum>.Matches(ev => ev == BusinessEventTypesEnum.ChargeModified), Arg<string>.Is.Anything, Arg<string>.Is.Anything)); eventTrackingManagerMock.Expect(be => be.CreateBusinessEventAsync(Arg<long>.Is.Anything, Arg<BusinessEventTypesEnum>.Matches(ev => ev == BusinessEventTypesEnum.ChargeCategoryAdded), Arg<string>.Is.Anything, Arg<string>.Is.Anything)); // Act settingsManager.ModifyCharge(charge); // Assert chargeDaoMock.VerifyAllExpectations(); chargeCategoryDaoMock.VerifyAllExpectations(); eventTrackingManagerMock.VerifyAllExpectations(); }
public void CreateChargeWithInvalidChargeCostTypeThrowsException() { // Arrange const long BUSINESS_ID = 501; var chargeDaoMock = MockRepository.GenerateMock<IChargeDao>(); settingsManager.ChargeDao = chargeDaoMock; var chargeCategory = new ChargeCategory { Id = 1, BusinessId = BUSINESS_ID }; var charge = new Charge { ChargeCategory = chargeCategory, ChargeType = new ChargeType { Type = ChargeTypeEnum.Charge }, Name = "TV" }; // Act settingsManager.CreateCharge(charge); }
/// <summary> /// Create a new charge category /// </summary> /// <param name="chargeCategory">The charge category to create</param> private void CreateChargeCategory(ChargeCategory chargeCategory) { chargeCategoryDao.Create(chargeCategory); // Record business event eventTrackingManager.CreateBusinessEventAsync(chargeCategory.BusinessId, BusinessEventTypesEnum.ChargeCategoryAdded, chargeCategory.Id.ToString(CultureInfo.InvariantCulture)); }