View Source FactoryEx.SchemaCounter (factory_ex v0.2.1)

This is a counter module that wraps :counters

setting-up

Setting Up

We can use this in our application by calling FactoryEx.SchemaCounter.start() inside our test/test_helper.exs file.

using-schemacounter

Using SchemaCounter

We can then use this module to add unique integers to each field, each value will only be used once provided we continue to call FactoryEx.SchemaCounter.next

FactoryEx.SchemaCounter.next("my_schema_field")

Link to this section Summary

Functions

Gets the counter for a specific key

Increments the counter for a specific key

Increments and gets the current value for a specific key

Puts the counter for a specific key

This starts the SchemaCounter, you need to call this before calling any of the other functions in this module. Most commonly this will go in your test/test_helper.exs file

Link to this section Functions

@spec get(key :: any()) :: integer()

Gets the counter for a specific key

example

Example

iex> key = Enum.random(1..10_000_000)
iex> FactoryEx.SchemaCounter.increment(key)
:ok
iex> FactoryEx.SchemaCounter.get(key)
1
@spec increment(key :: any()) :: :ok

Increments the counter for a specific key

example

Example

iex> key = Enum.random(1..10_000_000)
iex> FactoryEx.SchemaCounter.increment(key)
:ok
iex> FactoryEx.SchemaCounter.get(key)
1
@spec next(key :: any()) :: integer()

Increments and gets the current value for a specific key

example

Example

iex> key = Enum.random(1..10_000_000)
iex> FactoryEx.SchemaCounter.next(key)
0
iex> FactoryEx.SchemaCounter.next(key)
1
iex> FactoryEx.SchemaCounter.next(key)
2
@spec put(key :: any(), value :: integer()) :: :ok

Puts the counter for a specific key

example

Example

iex> key = Enum.random(1..10_000_000)
iex> FactoryEx.SchemaCounter.increment(key)
:ok
iex> FactoryEx.SchemaCounter.put(key, 1234)
:ok
iex> FactoryEx.SchemaCounter.get(key)
1234
@spec start() :: :ok

This starts the SchemaCounter, you need to call this before calling any of the other functions in this module. Most commonly this will go in your test/test_helper.exs file