We are continuously addressing and improving the SDK, if possible, make sure the problem persist in the latest SDK version.
Describe the bug
We use Cosmos SDK v3.2 and want to upgrade to v3.4 but since new version introduces internal abstract method in public abstract class FeedIterator<T> there is no way to compile the code anymore. We do implement FeedIterator class in our Mock infrastructure for testing purposes but now the new version throws 'MockCosmosQuery<T>' does not implement inherited abstract member 'FeedIterator<T>.TryGetContinuationToken(out string)' error while if we try to implement missing method it will now complain that 'MockCosmosQuery<T>.TryGetContinuationToken(out string)': no suitable method found to override. Could you please make TryGetContinuationToken method public in the public abstract class?
To Reproduce
Steps to reproduce the behavior. If you can include code snippets or links to repositories containing a repro of the issue that can helps us in detecting the scenario it would speed up the resolution.
Expected behavior
Give some alternative how to implement FeedIterator<T> class
Actual behavior
Unable to upgrade to v3.4 and have out test infrastructure working.
Environment summary
SDK Version: 3.4.
OS Version : Windows
Additional context
Please think how your library may be used by external developers before marking methods internal.
This is a bug the internal method should not be on the public type. We missed this on the PR. I'll work on a fix.
The PR is out. I'll try to get a hotfix out tomorrow. There is a work item to include public samples as part of the test projects to prevent this in the future.
The reason there is internal is the SDK is used by internal parts of the service that have custom requirements. The internal projects have internal visible to so it can access the internal methods. The internal types should not impact the public types. There is now a unit test to avoid this type of breaking change in the future.
Thanks for quick fix.
@hovsepm the 3.4.1 is out. Please let me know if there is any issues.
@j82w already referenced and confirming that it works. Thank for the fix!
We are continuously addressing and improving the SDK, if possible, make sure the problem persist in the latest SDK version.
Describe the bug
We use Cosmos SDK v3.2 and want to upgrade to v3.4 but since new version introduces internal abstract method inpublic abstract class FeedIterator<T>there is no way to compile the code anymore. We do implement FeedIterator class in our Mock infrastructure for testing purposes but now the new version throws'MockCosmosQuery<T>' does not implement inherited abstract member 'FeedIterator<T>.TryGetContinuationToken(out string)'error while if we try to implement missing method it will now complain that'MockCosmosQuery<T>.TryGetContinuationToken(out string)': no suitable method found to override. Could you please make TryGetContinuationToken method public in the public abstract class?To Reproduce
Steps to reproduce the behavior. If you can include code snippets or links to repositories containing a repro of the issue that can helps us in detecting the scenario it would speed up the resolution.Expected behavior
Give some alternative how to implementFeedIterator<T>classActual behavior
Unable to upgrade to v3.4 and have out test infrastructure working.Environment summary
SDK Version: 3.4.
OS Version : WindowsAdditional context
Please think how your library may be used by external developers before marking methods internal.
Where are you finding this MockCosmosQuery? I need something like this.
FeedIterator<T> is an abstract class. You can extend it to do testing or use it to create a Mock. MockCosmosQuery is hovsepm custom class they created.