local luaunit = require("luaunit")
local checks = require("luatypechecks.checks")
local Plot = require("luaplot.plot")
local PlotIterator = require("luaplot.plotiterator")
local PlotIteratorFactory = require("luaplot.plotiteratorfactory")
-- luacheck: globals TestPlotIteratorFactory
TestPlotIteratorFactory = {}
function TestPlotIteratorFactory.test_new()
local function transformer()
assert(false, "it should not be called")
end
local factory = PlotIteratorFactory:new(transformer)
luaunit.assert_is_table(factory)
luaunit.assert_true(checks.is_instance(factory, PlotIteratorFactory))
luaunit.assert_is_function(factory._transformer)
luaunit.assert_equals(factory._transformer, transformer)
end
function TestPlotIteratorFactory.test_with()
local function transformer()
assert(false, "it should not be called")
end
local plot = Plot:new(5, 32, 23, 42)
local factory = PlotIteratorFactory:new(transformer)
local iterator = factory:with(plot)
luaunit.assert_is_table(iterator)
luaunit.assert_true(checks.is_instance(iterator, PlotIterator))
luaunit.assert_is_table(iterator._plot)
luaunit.assert_true(checks.is_instance(iterator._plot, Plot))
luaunit.assert_equals(iterator._plot, plot)
luaunit.assert_is_function(iterator._transformer)
luaunit.assert_equals(iterator._transformer, transformer)
end