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
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
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
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
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()
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()