quality: Add test cases for openflow actions

This commit is contained in:
Eishun Kondoh 2019-04-26 23:42:04 +09:00
parent 1ac5aa265e
commit 211d703366
3 changed files with 74 additions and 3 deletions

View file

@ -12,12 +12,23 @@ defmodule Openflow.Action.NxSample do
alias __MODULE__ alias __MODULE__
alias Openflow.Action.Experimenter alias Openflow.Action.Experimenter
def new(options \\ []) do @spec new(
probability: 1..0xFFFF,
collector_set_id: 0..0xFFFFFFFF,
obs_domain_id: 0..0xFFFFFFFF,
obs_point_id: 0..0xFFFFFFFF
) :: %NxSample{
probability: 1..0xFFFF,
collector_set_id: 0..0xFFFFFFFF,
obs_domain_id: 0..0xFFFFFFFF,
obs_point_id: 0..0xFFFFFFFF
}
def new(options) do
(is_integer(options[:probability]) and options[:probability] > 0) || (is_integer(options[:probability]) and options[:probability] > 0) ||
raise("probability must be greater than 0") raise("probability must be greater than 0")
%NxSample{ %NxSample{
probability: options[:probability] || 0, probability: options[:probability],
collector_set_id: options[:collector_set_id] || 0, collector_set_id: options[:collector_set_id] || 0,
obs_domain_id: options[:obs_domain_id] || 0, obs_domain_id: options[:obs_domain_id] || 0,
obs_point_id: options[:obs_point_id] || 0 obs_point_id: options[:obs_point_id] || 0

View file

@ -18,7 +18,7 @@ defmodule Openflow.Action.NxSample2 do
raise("probability must be greater than 0") raise("probability must be greater than 0")
%NxSample2{ %NxSample2{
probability: options[:probability] || 0, probability: options[:probability],
collector_set_id: options[:collector_set_id] || 0, collector_set_id: options[:collector_set_id] || 0,
obs_domain_id: options[:obs_domain_id] || 0, obs_domain_id: options[:obs_domain_id] || 0,
obs_point_id: options[:obs_point_id] || 0, obs_point_id: options[:obs_point_id] || 0,

View file

@ -1242,4 +1242,64 @@ defmodule OfpActionTest do
Openflow.Action.NxConjunction.new(id: 1, clause: 0, n_clauses: 1) Openflow.Action.NxConjunction.new(id: 1, clause: 0, n_clauses: 1)
end end
end end
describe "Opefnlow.Action.NxSample" do
test "with sample(probability=1,collector_set_id=0,obs_domain_id=0,obs_point_id=0)" do
sample =
Openflow.Action.NxSample.new(
probability: 1,
collector_set_id: 0,
obs_domain_id: 0,
obs_point_id: 0
)
sample
|> Openflow.Action.to_binary()
|> Openflow.Action.read()
|> Enum.at(0)
|> Kernel.==(sample)
|> assert()
end
end
describe "Opefnlow.Action.NxSample2" do
test "with sample(probability=1,collector_set_id=0,obs_domain_id=0,obs_point_id=0, sampling_port=100)" do
sample =
Openflow.Action.NxSample2.new(
probability: 1,
collector_set_id: 0,
obs_domain_id: 0,
obs_point_id: 0,
sampling_port: 100
)
sample
|> Openflow.Action.to_binary()
|> Openflow.Action.read()
|> Enum.at(0)
|> Kernel.==(sample)
|> assert()
end
end
describe "Opefnlow.Action.NxSample3" do
test "with sample(probability=1,collector_set_id=0,obs_domain_id=0,obs_point_id=0, sampling_port=100,egress)" do
sample =
Openflow.Action.NxSample3.new(
probability: 1,
collector_set_id: 0,
obs_domain_id: 0,
obs_point_id: 0,
sampling_port: 100,
direction: :egress
)
sample
|> Openflow.Action.to_binary()
|> Openflow.Action.read()
|> Enum.at(0)
|> Kernel.==(sample)
|> assert()
end
end
end end