Ejemplo n.º 1
0
def test_should_return_failure_when_save_stream_fails(
    create_new_stream_from_stream_use_case: CreateNewStreamFromStreamUseCase,
    create_new_stream_from_stream: Mock,
    save_stream: Mock,
) -> None:
    command = CreateNewStreamCommand(
        project_id=uuid4(),
        stream_name="TEST_STREAM_FAILURE",
        fields=[
            CreateNewStreamCommand.StreamField(name="field_test",
                                               type="STRING"),
            CreateNewStreamCommand.StreamField(name="another_field_test",
                                               type="STRING"),
        ],
        source_name="TEST_STREAM",
        source_type=SourceType.STREAM,
    )
    failure = Failure(FailureDetails(reason="TEST_SAVE_STREAM_FAILS"))
    create_new_stream_from_stream.return_value = Success(command)
    save_stream.return_value = failure

    actual = create_new_stream_from_stream_use_case(command)

    create_new_stream_from_stream.assert_called_with(command)
    save_stream.assert_called_with(command)
    assert isinstance(actual, Result.failure_type)
    assert isinstance(actual.failure(), BusinessFailureDetails)
    assert "NON_BUSINESS_RULE_CAUSE" == actual.failure().reason
    assert failure.failure() == actual.failure().failure_due
Ejemplo n.º 2
0
def test_should_return_failure_when_find_streams_fails(
        get_streams_use_case: GetStreamsUseCase, find_streams: Mock) -> None:
    failure = FailureDetails(reason="TEST_FIND_STREAMS_FAIL")
    find_streams.return_value = Failure(failure)

    actual = get_streams_use_case()

    find_streams.assert_called_once()
    assert isinstance(actual, Result.failure_type)
    assert isinstance(actual.failure(), BusinessFailureDetails)
    assert "NON_BUSINESS_RULE_CAUSE" == actual.failure().reason
    assert failure == actual.failure().failure_due
Ejemplo n.º 3
0
def test_should_return_failure_when_an_error_occurred_while_getting_ksql_streams(
        get_ksql_streams_use_case: GetKSQLStreamsUseCase,
        get_ksql_streams: Mock) -> None:
    failure = Failure(FailureDetails(reason="FAILURE_TEST"))
    get_ksql_streams.return_value = failure

    actual = get_ksql_streams_use_case()

    get_ksql_streams.assert_called_once()
    assert isinstance(actual, Result.failure_type)
    assert isinstance(actual.failure(), BusinessFailureDetails)
    assert "NON_BUSINESS_RULE_CAUSE" == actual.failure().reason
    assert failure.failure() == actual.failure().failure_due
Ejemplo n.º 4
0
def test_should_return_failure_when_an_error_is_returned_from_get_topic_names(
    get_available_topic_names_use_case: GetAvailableTopicNamesUseCase,
    get_topic_names: Mock,
) -> None:
    failure = Failure(FailureDetails(reason="This is a test failure"))
    get_topic_names.return_value = failure

    actual = get_available_topic_names_use_case()

    assert isinstance(actual, Result.failure_type)
    assert isinstance(actual.failure(), BusinessFailureDetails)
    assert "NON_BUSINESS_RULE_CAUSE" == actual.failure().reason
    assert failure.failure() == actual.failure().failure_due
Ejemplo n.º 5
0
def test_should_return_failure_when_an_error_occurred_while_getting_stream_names(
    get_stream_by_name_use_case: GetStreamByNameUseCase, get_stream_by_name: Mock
) -> None:
    failure = Failure(FailureDetails(reason="FAILURE_TEST"))
    get_stream_by_name.return_value = failure

    actual = get_stream_by_name_use_case("MY_STREAM_NAME")

    get_stream_by_name.assert_called_once()
    get_stream_by_name.assert_called_with("MY_STREAM_NAME")
    assert isinstance(actual, Result.failure_type)
    assert isinstance(actual.failure(), BusinessFailureDetails)
    assert "NON_BUSINESS_RULE_CAUSE" == actual.failure().reason
    assert failure.failure() == actual.failure().failure_due
def test_should_return_failure_when_find_stream_by_stream_id_fails(
        get_stream_details_use_case: GetStreamDetailsUseCase,
        find_stream_by_stream_id: Mock) -> None:
    stream_id = uuid4()
    failure = FailureDetails(reason="TEST_FIND_STREAM_FAILS")
    find_stream_by_stream_id.return_value = Failure(failure)

    actual = get_stream_details_use_case(stream_id)

    find_stream_by_stream_id.assert_called_once()
    find_stream_by_stream_id.assert_called_with(stream_id)
    assert isinstance(actual, Result.failure_type)
    assert isinstance(actual.failure(), FailureDetails)
    assert failure == actual.failure()
Ejemplo n.º 7
0
def test_should_return_failure_when_get_topic_schema_versions_fails(
    get_topic_schema_use_case: GetTopicSchemaUseCase, get_topic_schema_versions: Mock
) -> None:
    topic_name = "TopicName"
    failure = Failure(FailureDetails(reason="get_topic_schema_versions"))
    get_topic_schema_versions.return_value = failure

    actual = get_topic_schema_use_case(topic_name)

    get_topic_schema_versions.assert_called_with(topic_name)
    assert isinstance(actual, Result.failure_type)
    assert isinstance(actual.failure(), BusinessFailureDetails)
    assert "NON_BUSINESS_RULE_CAUSE" == actual.failure().reason
    assert failure.failure() == actual.failure().failure_due
def test_should_return_failure_when_create_stream_from_kafka_topic_fails(
    create_new_stream_from_topic_use_case: CreateNewStreamFromTopicUseCase,
    create_new_stream_from_kafka_topic: Mock,
) -> None:
    command = CreateNewStreamCommand(
        project_id=uuid4(),
        stream_name="test_stream_failure",
        fields=[CreateNewStreamCommand.StreamField(name="field_test", type="STRING")],
        source_name="from_this_test_topic",
        source_type=SourceType.TOPIC,
    )
    failure = Failure(FailureDetails(reason="create_new_stream_from_kafka_topic"))
    create_new_stream_from_kafka_topic.return_value = failure

    actual = create_new_stream_from_topic_use_case(command)

    create_new_stream_from_kafka_topic.assert_called_with(command)
    assert isinstance(actual, Result.failure_type)
    assert isinstance(actual.failure(), BusinessFailureDetails)
    assert "NON_BUSINESS_RULE_CAUSE" == actual.failure().reason
    assert failure.failure() == actual.failure().failure_due
def test_should_return_failure_when_get_stream_by_name_fails(
    get_stream_details_use_case: GetStreamDetailsUseCase,
    find_stream_by_stream_id: Mock,
    find_projects_by_stream: Mock,
    get_stream_by_name: Mock,
) -> None:
    stream_id = uuid4()
    stream = Stream(
        stream_id=stream_id,
        name="TEST_STREAM",
        source_type=SourceType.STREAM,
        source_name="OTHER_STREAM_TEST",
    )
    project_list = [
        Project(
            project_id=uuid4(),
            title="Project One",
            created_at=datetime.now(),
            status=ProjectStatus.ACTIVE,
        ),
        Project(
            project_id=uuid4(),
            title="Project Two",
            created_at=datetime.now(),
            status=ProjectStatus.INACTIVE,
        ),
    ]
    failure = FailureDetails(reason="TEST_FIND_STREAM_BY_NAME_FAILS")

    find_stream_by_stream_id.return_value = Success(Maybe.from_value(stream))
    find_projects_by_stream.return_value = Success(project_list)
    get_stream_by_name.return_value = Failure(failure)

    actual = get_stream_details_use_case(stream_id)

    get_stream_by_name.assert_called_once()
    get_stream_by_name.assert_called_with(stream.name)
    assert isinstance(actual, Result.failure_type)
    assert isinstance(actual.failure(), FailureDetails)
    assert failure == actual.failure()
def test_should_return_failure_when_find_projects_by_stream_fails(
    get_stream_details_use_case: GetStreamDetailsUseCase,
    find_stream_by_stream_id: Mock,
    find_projects_by_stream: Mock,
) -> None:
    stream_id = uuid4()
    stream = Stream(
        stream_id=stream_id,
        name="TEST_STREAM",
        source_type=SourceType.STREAM,
        source_name="OTHER_STREAM_TEST",
    )
    failure = FailureDetails(reason="TEST_FIND_PROJECTS_FAILS")

    find_stream_by_stream_id.return_value = Success(Maybe.from_value(stream))
    find_projects_by_stream.return_value = Failure(failure)

    actual = get_stream_details_use_case(stream_id)

    find_projects_by_stream.assert_called_once()
    find_projects_by_stream.assert_called_with(stream)
    assert isinstance(actual, Result.failure_type)
    assert isinstance(actual.failure(), FailureDetails)
    assert failure == actual.failure()