private AddChargeAction GivenAnAddChargeActionMock()
        {
            AddChargeAction action = Substitute.For <AddChargeAction>(null, null);

            ActionsFactoryMock.CreateAddChargeAction(action);
            return(action);
        }
        public async Task given_data_for_add_new_charge_we_obtein_an_ok_response()
        {
            var             requestUri = "http://localhost:10000/api/charges";
            var             content    = GivenAHttpContent(newCharge, requestUri);
            AddChargeAction action     = GivenAnAddChargeActionMock();

            action.Execute(Arg.Any <Business.Dtos.Charge>()).Returns(new ChargeResponseOK());

            var result = await client.PostAsync(requestUri, content);

            await verifyResult(newCharge, action, result);
        }
        public async Task given_data_for_add_new_charge_and_have_any_problem_we_obtein_bad_request()
        {
            var             requestUri = "http://localhost:10000/api/charges";
            var             content    = GivenAHttpContent(newCharge, requestUri);
            AddChargeAction action     = GivenAnAddChargeActionMock();

            action.Execute(Arg.Any <Business.Dtos.Charge>()).Throws(new ChargesException("any message exception"));

            var result = await client.PostAsync(requestUri, content);

            result.StatusCode.Should().Be(HttpStatusCode.BadRequest);
            ChargeResponseKO response = JsonConvert.DeserializeObject <ChargeResponseKO>(result.Content.ReadAsStringAsync().GetAwaiter().GetResult());

            response.Message.Should().Be("any message exception");
            await action.Received(1).Execute(Arg.Is <Business.Dtos.Charge>(item => item.identifier == newCharge.identifier && item.Amount == newCharge.Amount && item.Description == newCharge.Description));
        }
Example #4
0
        public async Task should_return_charge_already_exist_when_try_add_charge_with_exist_identifier()
        {
            var addResult = true;

            Business.Dtos.Charge           newCharge             = GivenACharge();
            ActivityDto                    activityDto           = GivenAnActivity(newCharge.identifier, addResult);
            ChargeActivityServiceApiClient clientActivityService = GivenAMockActivityServiceClient(activityDto);
            var addChargeAction = new AddChargeAction(clientChargeRepository, clientActivityService);

            clientChargeRepository.Get(newCharge.identifier).Returns(new ChargeAlreadyExist());

            var result = await addChargeAction.Execute(newCharge);

            result.Should().BeOfType <ChargeAlreadyExist>();
            clientChargeRepository.Received(1).Get(newCharge.identifier);
        }
Example #5
0
        public async Task given_data_for_add_new_charge_we_obtein_a_true_response()
        {
            Business.Dtos.Charge newCharge = GivenACharge();
            var addResult = true;

            clientChargeRepository.AddCharge(newCharge).Returns(new ChargeResponseOK());
            ActivityDto activityDto = GivenAnActivity(newCharge.identifier, addResult);
            ChargeActivityServiceApiClient clientActivityService = GivenAMockActivityServiceClient(activityDto);

            clientActivityService.NotifyNewCharge(Arg.Any <ActivityDto>()).Returns(true);;
            clientActivityService.UpdateNotifyCharge(Arg.Any <ActivityDto>()).Returns(true);;
            var addChargeAction = new AddChargeAction(clientChargeRepository, clientActivityService);

            var result = await addChargeAction.Execute(newCharge);

            await VerifyResult(newCharge, activityDto, clientActivityService, result);
        }
Example #6
0
 public static void CreateAddChargeAction(AddChargeAction action)
 {
     Instance.CreateAddChargeAction().Returns(action);
 }
 private static async Task verifyResult(Business.Dtos.Charge newCharge, AddChargeAction action, HttpResponseMessage result)
 {
     result.StatusCode.Should().Be(HttpStatusCode.OK);
     await action.Received(1).Execute(Arg.Is <Business.Dtos.Charge>(item => item.identifier == newCharge.identifier && item.Amount == newCharge.Amount && item.Description == newCharge.Description));
 }