Issues with the fakes:
• For metric data and listing metrics, what would be a good way to store and retrieve them? In particular for the Get operations, it seems somewhat difficult to evaluate validity of MathExpressions and MetricDataQueries and very difficult to evaluate them over the provided metrics. What would be an acceptable, simple implementation for the fakes? Or would it be alright not to provide it for metric data, like not all functionality for fakes is provided in the cognito module?
• What validation is expected in the fakes? Should the limits that Amazon itself places on services and data be implemented (e.g. at most 50 tags for any resource) in the fakes, or should we not care about that?
• What is an acceptable way of writing fakes where NextToken is used? Can we actually use it to derive some logic (e.g. always return it with an int value to determine the page) in the fake to support the pagination functionality NextToken normally provides? Or is there a different preferred solution?
Issues with the tests:
• Because I have no fake implementation for metric data, I cannot write tests for them either (because the tests for the fakes would fail). What would be the best approach to ensure there are tests for these functions?
• For testing metric streams, we need an existing Firehose delivery stream. I see that no test dependency exists anywhere between two different AWS service modules. I assume we want to keep it that way. With that in mind, how would I ensure an existing delivery stream exists (or how can I create on) for my tests? I need to know both for the actual implementation and for the fakes, so the tests can work for both.
I may run into more issues, but these are the main ones so far.