Skip to content
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

Make IProxyGenerator (+ IFakeCallProcessorProvider and IFakeCallProcessor) internal #378

Merged
merged 1 commit into from Nov 10, 2014

Conversation

ulrichb
Copy link
Contributor

@ulrichb ulrichb commented Nov 9, 2014

(@adamralph: follow up change for #368)

In #373 we introduced IFakeCallProcessorProvider and IFakeCallProcessor, which had to be public due to the usage in IProxyGenerator.

This PR proposes making IProxyGenerator, as a part of #374, internal to allow making the introduced interfaces internal and hide FakeManager.Process (explicit implementation of IFakeCallProcessor.Process).

Note that IProxyGenerator is an infrastructure interface, which is just used in FakeObjectCreator and it was public since initial commit (without stating a reason).

Further note that we already introduced a breaking change in IProxyGenerator in #373 by adding the fakeCallProcessorProvider parameters, so we could use this chance before releasing the next version to make this interface internal.

@ contributors: What do you think?

@ulrichb
Copy link
Contributor Author

ulrichb commented Nov 9, 2014

Note that we could also internalize ProxyGeneratorResult because this type is an infrastructure DTO (represents the output of IProxyGenerator) and was also forced to be public because of the public IProxyGenerator.

@blairconrad
Copy link
Member

@ulrichb, your point about ProxyGeneratorResult is a good one, but since we didn't make anything worse in #373 (I know, we did change the class a little bit, but didn't make it depend on new interfaces or anything), I think we should not change ProxyGeneratorResult for this PR. It can be examined as part of #374, and I'll make a note in the Giant Table in that issue.

Otherwise, I think we fall into the trap of chasing down every visible FakeItEasy type that was in any way modified by #373, and I think that's too much work for this issue. The other changes #373 at least involved previously-existing (and visible) types.

@blairconrad
Copy link
Member

To summarize, this change will internalize two new interfaces added in #373, as well as IProxyGenerator (which uses one of the new interfaces, and forced them to become public). IProxyGenerator is public, but is not useful to clients of FakeItEasy. Accordingly, I consider this to be a non-breaking change.

@adamralph, I'm happy with the change, and would include it in release 1.25.0, if you've 2 or 3 minutes (literally—it's very small) to give it your blessing.

@adamralph
Copy link
Contributor

👼 👍 :shipit:

adamralph added a commit that referenced this pull request Nov 10, 2014
Make IProxyGenerator (+ IFakeCallProcessorProvider and IFakeCallProcessor) internal
@adamralph adamralph merged commit 4813815 into FakeItEasy:master Nov 10, 2014
@ulrichb ulrichb deleted the InternalIProxyGenerator branch November 10, 2014 09:45
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

Successfully merging this pull request may close these issues.

None yet

3 participants