Esempio n. 1
0
def test_store_new_customer(customer_repository):
    nicole = Customer(first_name="Nicole", surname="Forsgren")
    jez = Customer(first_name="Jez", surname="Humble")
    customer_repository.store(nicole)
    customer_repository.store(jez)
    assert customer_repository.fetch_by_id(nicole.customer_id) is nicole
    assert customer_repository.fetch_by_id(jez.customer_id) is jez
Esempio n. 2
0
def test_store_stores_customer_with_id(customer_repository):
    nicole = Customer(customer_id=123, first_name="Nicole", surname="Forsgren")
    jez = Customer(customer_id=321, first_name="Jez", surname="Humble")
    customer_repository.store(nicole)
    customer_repository.store(jez)
    assert customer_repository.fetch_by_id(123) is nicole
    assert customer_repository.fetch_by_id(321) is jez
Esempio n. 3
0
def test_update_customer(customer_repository):
    customer1 = Customer(customer_id=123456,
                         first_name='Rudi',
                         surname='Joyel')
    customer2 = Customer(customer_id=12345,
                         first_name='Nicole',
                         surname='Forsgren')
    customer_repository.store(customer1)
    customer_repository.store(customer2)

    commands.update_customer(customer_id=123456,
                             surname="Jack",
                             customer_repository=customer_repository)

    commands.update_customer(customer_id=12345,
                             surname="Woods",
                             customer_repository=customer_repository)

    updated_customer1 = customer_repository.fetch_by_id(123456)
    updated_customer2 = customer_repository.fetch_by_id(12345)

    assert updated_customer1.first_name == "Rudi"
    assert updated_customer1.surname == "Jack"

    assert updated_customer2.first_name == "Nicole"
    assert updated_customer2.surname == "Woods"
Esempio n. 4
0
def test_update_customer(customer_repository):
    nicole = Customer(customer_id=123, first_name="Nicole", surname="Forsgren")
    jez = Customer(customer_id=123, first_name="Jez", surname="Humble")
    customer_repository.store(nicole)
    customer_repository.update_customer(jez)
    assert customer_repository.fetch_by_id(123).first_name == jez.first_name
    assert customer_repository.fetch_by_id(123).surname == jez.surname
def test_update_customer_special_char_input(update_customer, web_client,
                                            customer_repository):
    update_customer.return_value = Customer(customer_id=12345,
                                            first_name='Joe',
                                            surname='Bloggs')
    response = web_client.put('/customers/12345/Joe4/Bloggs0')
    assert response.status_code == 400
Esempio n. 6
0
def update_customer(customer_id, first_name, surname, customer_repository):
    customer = Customer(
        customer_id=customer_id,
        first_name=first_name,
        surname=surname)
    customer_repository.update_customer(customer)
    return customer
Esempio n. 7
0
def test_get_customer(customer_repository):
    customer = Customer(customer_id=1234, first_name='Gene', surname='Kim')
    customer_repository.store(customer)

    result = commands.get_customer(customer_id=1234,
                                   customer_repository=customer_repository)

    assert result is customer
def create_customer(context, name, customer_id):
    (first_name, surname) = name.split(' ', 2)

    customer = Customer(customer_id=customer_id,
                        first_name=first_name,
                        surname=surname)

    context.customer_repository.store(customer)
Esempio n. 9
0
def test_create_customer(customer_repository):
    customer = Customer(first_name='Nicole', surname='Forsgren')

    commands.create_customer(customer=customer,
                             customer_repository=customer_repository)

    stored_customer = customer_repository.fetch_by_id(customer.customer_id)

    assert stored_customer.first_name == 'Nicole'
    assert stored_customer.surname == 'Forsgren'
def test_update_surname(customer_repository):
    customer = Customer(first_name='Jack', surname='Black')

    commands.create_customer(customer=customer,
                             customer_repository=customer_repository)

    commands.update_surname(customer.customer_id, 'Jones', customer_repository)
    stored_customer = customer_repository.fetch_by_id(customer.customer_id)

    assert stored_customer.first_name == 'Jack'
    assert stored_customer.surname == 'Jones'
def test_update_customer(update_customer, web_client, customer_repository):

    update_customer.return_value = Customer(customer_id=12345,
                                            first_name='Joe',
                                            surname='Bloggs')

    response = web_client.put('/customers/12345/Joe/Bloggs')

    assert response.is_json
    assert response.get_json()['customerID'] == 12345
    assert response.get_json()['firstName'] == "Joe"
    assert response.get_json()['surname'] == "Bloggs"
def test_update_customer(customer_repository):
    customer = Customer(first_name='Gene', surname='Kim')
    customer_repository.store(customer)

    commands.update_customer(customer_id=customer.customer_id,
                             customer_repository=customer_repository,
                             first_name='Gene',
                             surname='Wilder')

    stored_customer = customer_repository.fetch_by_id(customer.customer_id)

    assert stored_customer.first_name == 'Gene'
    assert stored_customer.surname == 'Wilder'
def test_get_customer_id(get_customer, web_client, customer_repository):
    get_customer.return_value = Customer(customer_id=12345,
                                         first_name='Joe',
                                         surname='Bloggs')

    response = web_client.get('/customers/12345')

    get_customer.assert_called_with(customer_id=12345,
                                    customer_repository=customer_repository)
    assert response.is_json
    assert response.get_json() == dict(customerId='12345',
                                       firstName='Joe',
                                       surname='Bloggs')
Esempio n. 14
0
def test_update_customer(customer_repository):
    customer = Customer(customer_id=12345,
                        first_name='Nicole',
                        surname='Forsgren')
    customer_repository.store(customer)

    commands.update_customer(surname='Bloggs',
                             customer_id=12345,
                             customer_repository=customer_repository)

    stored_customer = customer_repository.fetch_by_id(customer.customer_id)

    assert stored_customer.surname == 'Bloggs'
Esempio n. 15
0
    def fetch_by_id(self, customer_id):
        doc_ref = self.customer_repo.document(customer_id)
        doc = doc_ref.get()
        logging.info("document: {}".format(doc))
        logging.info(u'Document data: {}'.format(doc.to_dict()))

        customer_json = doc.to_dict()
        if customer_json is not None:
            return Customer(customer_id=customer_json["customer_id"],
                            first_name=customer_json["firstName"],
                            surname=customer_json["surname"])
        else:
            raise CustomerNotFound()
def test_update_customer(customer_repository):

    customer = Customer(customer_id=12345, first_name='Gene', surname='Kim')

    customer_repository.store(customer)

    commands.update_customer(
        customer_id=12345,
        first_name='Nicole',
        surname='Forsgren',
        customer_repository=customer_repository)

    stored_customer = customer_repository.fetch_by_id(12345)

    assert stored_customer.first_name == 'Nicole'
    assert stored_customer.surname == 'Forsgren'
Esempio n. 17
0
def test_update_customer(customer_repository):
    customer = Customer(customer_id=1234, first_name='Gene', surname='Kim')
    customer_repository.store(customer)

    result = commands.update_customer(cid=customer.customer_id,
                                      first_name=customer.first_name,
                                      surname="Sid",
                                      customer_repository=customer_repository)

    assert result.first_name == 'Gene'
    assert result.surname == 'Sid'

    stored_customer = customer_repository.fetch_by_id(1234)

    assert stored_customer.first_name == 'Gene'
    assert stored_customer.surname == 'Sid'
def create_customer():
    customer_repository = current_app.customer_repository

    if not request.is_json:
        raise ContentTypeError()

    body = request.get_json()

    CREATE_PAYLOAD_SCHEMA.validate(body)

    customer = Customer(first_name=body['firstName'], surname=body['surname'])

    commands.create_customer(customer=customer,
                             customer_repository=customer_repository)

    return jsonify(customerId=str(customer.customer_id),
                   firstName=customer.first_name,
                   surname=customer.surname), HTTPStatus.CREATED
Esempio n. 19
0
def update_customer(customer_id):
    customer_repository = current_app.customer_repository

    if not request.is_json:
        raise ContentTypeError()

    body = request.get_json()

    customer = Customer(first_name=body['firstName'], surname=body['surname'])

    commands.update_customer(customer_id=customer_id,
                             customer_repository=customer_repository,
                             first_name=customer.first_name,
                             surname=customer.surname)

    return jsonify(customerId=str(customer.customer_id),
                   firstName=customer.first_name,
                   surname=customer.surname), HTTPStatus.OK
def test_update_customer(customer_repository):
    # Given customer exists
    existing_customer = Customer(first_name='Nicole', surname='Foresgren')

    customer_repository.store(existing_customer)

    # When customer updated
    customer_id = existing_customer.customer_id
    commands.update_customer(first_name='Bob',
                             surname='Todd',
                             customer_id=customer_id,
                             customer_repository=customer_repository)

    # Then
    updated_customer = customer_repository.fetch_by_id(customer_id)
    assert updated_customer.first_name == 'Bob'
    assert updated_customer.surname == 'Todd'
    assert updated_customer.customer_id == customer_id
def test_update_customer_name(customer_repository):

    mock_fetch_by_id = MagicMock()
    mock_fetch_by_id.return_value = Customer(customer_id=5,
                                             first_name="Susan",
                                             surname="Davies")

    customer_repository.fetch_by_id = mock_fetch_by_id

    mock_store = MagicMock()
    customer_repository.store = mock_store

    commands.update_customer(customer_id=5,
                             first_name="Bob",
                             surname="Jones",
                             customer_repository=customer_repository)

    mock_fetch_by_id.assert_called_once_with(5)

    store_argument = mock_store.call_args_list[0][0][0]
    assert store_argument.first_name == "Bob"
    assert store_argument.surname == "Jones"
Esempio n. 22
0
def create_customer(first_name, surname, customer_repository):
    customer = Customer(first_name=first_name, surname=surname)
    customer_repository.store(customer)

    return customer.customer_id