Skip to content

Instantly share code, notes, and snippets.

@Tishka17
Last active February 5, 2023 19:23
Show Gist options
  • Save Tishka17/a54acb6ed1fe0fab82b16efcee05a1e2 to your computer and use it in GitHub Desktop.
Save Tishka17/a54acb6ed1fe0fab82b16efcee05a1e2 to your computer and use it in GitHub Desktop.
Providers logic

Consumptions:

  • ListProvider - generates static list when list is requested
  • ListExtendProvider - prepends data to a list generated by other list provider
  • ItemProvider - generates single number
  • ListItemProvider - generates list of items retrieved from other providers

1. First can access data from following

Providers:

ListExtendProvider([1, 2]), ListProvider([3, 4])

Result:

1,2,3,4

2. First can skip following

Providers:

ListProvider([1, 2]), ListProvider([3, 4])

Result:

1,2

3. We can add new overloading provider

Providers:

ListProvider([3, 4])

Action:

overload (add new provider) with ListProvider([1, 2])

Result:

1,2

4. or new prepending provider

Providers:

ListProvider([3, 4])

Action:

overload (add new provider) with ListExtendProvider([1, 2])

Result:

1,2,3,4

5. One provider can access all others

Providers:

ListItemProvider(count=2), ItemProvider(100)

Result:

100,100

6. Order is not important

Providers:

ItemProvider(100), ListItemProvider(count=2)

Result:

100,100

7. Provider requests next data during request processing

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment