Skip to content

TCK: SubscriberValidation should ship with default Publisher instead of forcing to impl HelperPublisher #181

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Closed
ktoso opened this issue Dec 15, 2014 · 6 comments
Milestone

Comments

@ktoso
Copy link
Contributor

ktoso commented Dec 15, 2014

If I'm an reactive streams implementer, and my library only has Subscribers, I'd rather not be forced into implementing a proper Publisher in order to fulful createHelperPublisher(long elements).

We can and should provide default implementations of VALID "simple number publishers" you can use.

@viktorklang
Copy link
Contributor

I'll tackle this one, I've got a super simple sync publisher we can use for the TCK.

@viktorklang
Copy link
Contributor

@reactive-streams/contributors Crazy idea—what about using the AsyncIterablePublisher from the examples to feed the SubscriberValidation? (The AsyncIterablePublisher is verified by the TCK's PublisherValidation)

@ktoso
Copy link
Contributor Author

ktoso commented Dec 20, 2014

I'd be all for removing the createHelperPublisher, and can prepare a PR which makes use of the AsyncIterablePublisher to do so.

I think this was briefly mentioned a few times, but we didn't have the time/focus to remove the helper yet. It would make a lot of sense since some impls may only want to implement Subscribers and not care about implementing a publisher "only to drive subscriber tests".

@viktorklang
Copy link
Contributor

Sounds great. Keep in mind to solve the dependency chain between examples and tck. (the simplest solution is probably to add the examples-tck-tests to the test section of the TCK project.

@ktoso
Copy link
Contributor Author

ktoso commented Dec 24, 2014

Got some time back into my hands now, expect a PR "soon" :-)

ktoso added a commit to ktoso/reactive-streams that referenced this issue Dec 24, 2014
…iber tests

+ When subscriber verifications are extended using Integer
  we can use the existing publisher implementations from examples
  to drive the tests. This allows implementers who only care about
  implementing Subscribers to not care at all about implementing
  Publishers
+ In case the subscriber verification is extended using a custom signal
  type (defined as "not Integer") we do not magically generate a
  Publisher of this type, but instead fail the tests telling the
  implementer that he/she will need to implement a custom helperPublisher
  which is exactly what we have up until now always demanded from
  implementations.
+ We also provide tests to verify the test failures work as expected,
  and that the messages are indeed helpful.
+ Updated TCK README.md to clarify when to implement a custom publisher
+ fixed mistakenly added `<T>` on NumberPublisher - it is bound to Ints
+ TCK now depends on examples, as it uses the well documented async
  publisher to provide the default publisher for numbers. As well as
  in order to allow implementers to reuse those publishers when
  implementing custom Publishers to drive their Subscriber specs.
ktoso added a commit to ktoso/reactive-streams that referenced this issue Dec 27, 2014
…iber tests

+ When subscriber verifications are extended using Integer
  we can use the existing publisher implementations from examples
  to drive the tests. This allows implementers who only care about
  implementing Subscribers to not care at all about implementing
  Publishers
+ In case the subscriber verification is extended using a custom signal
  type (defined as "not Integer") we do not magically generate a
  Publisher of this type, but instead fail the tests telling the
  implementer that he/she will need to implement a custom helperPublisher
  which is exactly what we have up until now always demanded from
  implementations.
+ We also provide tests to verify the test failures work as expected,
  and that the messages are indeed helpful.
+ Updated TCK README.md to clarify when to implement a custom publisher
+ fixed mistakenly added `<T>` on NumberPublisher - it is bound to Ints
+ TCK now depends on examples, as it uses the well documented async
  publisher to provide the default publisher for numbers. As well as
  in order to allow implementers to reuse those publishers when
  implementing custom Publishers to drive their Subscriber specs.
ktoso added a commit to ktoso/reactive-streams that referenced this issue Dec 30, 2014
…iber tests

+ When subscriber verifications are extended using Integer
  we can use the existing publisher implementations from examples
  to drive the tests. This allows implementers who only care about
  implementing Subscribers to not care at all about implementing
  Publishers
+ In case the subscriber verification is extended using a custom signal
  type (defined as "not Integer") we do not magically generate a
  Publisher of this type, but instead fail the tests telling the
  implementer that he/she will need to implement a custom helperPublisher
  which is exactly what we have up until now always demanded from
  implementations.
+ We also provide tests to verify the test failures work as expected,
  and that the messages are indeed helpful.
+ Updated TCK README.md to clarify when to implement a custom publisher
+ fixed mistakenly added `<T>` on NumberPublisher - it is bound to Ints
+ TCK now depends on examples, as it uses the well documented async
  publisher to provide the default publisher for numbers. As well as
  in order to allow implementers to reuse those publishers when
  implementing custom Publishers to drive their Subscriber specs.
! Moved away from createHelper to createElement style of testing
  subscribers
viktorklang pushed a commit that referenced this issue Jan 2, 2015
+ When subscriber verifications are extended using Integer
  we can use the existing publisher implementations from examples
  to drive the tests. This allows implementers who only care about
  implementing Subscribers to not care at all about implementing
  Publishers
+ In case the subscriber verification is extended using a custom signal
  type (defined as "not Integer") we do not magically generate a
  Publisher of this type, but instead fail the tests telling the
  implementer that he/she will need to implement a custom helperPublisher
  which is exactly what we have up until now always demanded from
  implementations.
+ We also provide tests to verify the test failures work as expected,
  and that the messages are indeed helpful.
+ Updated TCK README.md to clarify when to implement a custom publisher
+ fixed mistakenly added `<T>` on NumberPublisher - it is bound to Ints
+ TCK now depends on examples, as it uses the well documented async
  publisher to provide the default publisher for numbers. As well as
  in order to allow implementers to reuse those publishers when
  implementing custom Publishers to drive their Subscriber specs.
! Moved away from createHelper to createElement style of testing
  subscribers
ktoso added a commit to ktoso/reactive-streams that referenced this issue Jan 2, 2015
…iber tests

+ When subscriber verifications are extended using Integer
  we can use the existing publisher implementations from examples
  to drive the tests. This allows implementers who only care about
  implementing Subscribers to not care at all about implementing
  Publishers
+ In case the subscriber verification is extended using a custom signal
  type (defined as "not Integer") we do not magically generate a
  Publisher of this type, but instead fail the tests telling the
  implementer that he/she will need to implement a custom helperPublisher
  which is exactly what we have up until now always demanded from
  implementations.
+ We also provide tests to verify the test failures work as expected,
  and that the messages are indeed helpful.
+ Updated TCK README.md to clarify when to implement a custom publisher
+ fixed mistakenly added `<T>` on NumberPublisher - it is bound to Ints
+ TCK now depends on examples, as it uses the well documented async
  publisher to provide the default publisher for numbers. As well as
  in order to allow implementers to reuse those publishers when
  implementing custom Publishers to drive their Subscriber specs.
! Moved away from createHelper to createElement style of testing
  subscribers
@viktorklang viktorklang modified the milestone: 1.0.0.RC2 Jan 2, 2015
@rkuhn
Copy link
Member

rkuhn commented Jan 16, 2015

Implementation has been merged, closing.

@rkuhn rkuhn closed this as completed Jan 16, 2015
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants