require "integration/factories/collection_factory"

class SubnetworksFactory < CollectionFactory
  def initialize(example)
    # We cannot have 2 subnetworks with the same CIDR range so instantiating a
    # class variable holding a generator, ensuring that the factory gives us a
    # new subnet every time it's called
    @octet_generator = (0..255).each
    super(Fog::Compute[:google].subnetworks, example)
  end

  def get(identity)
    @subject.get(identity, TEST_REGION)
  end

  def all
    @subject.all(region: TEST_REGION)
  end

  def params
    { :name => resource_name,
      :network => "default",
      :region => TEST_REGION,
      :ip_cidr_range => "192.168.#{@octet_generator.next}.0/24" }
  end
end
