require "./spec_helper" describe Discord::Snowflake do describe Discord::DISCORD_EPOCH do it "is 2015-01-01" do expected = Time.utc(2015, 1, 1) Discord::DISCORD_EPOCH.should eq expected.to_unix_ms end end it "#to_json" do snowflake = Discord::Snowflake.new(0_u64) json = JSON.build do |builder| snowflake.to_json(builder) end json.should eq %("0") end it ".from_json" do parser = JSON::PullParser.new(%("0")) snowflake = Discord::Snowflake.new(parser) snowflake.value.should eq 0_u64 end describe Array(Discord::Snowflake) do it "can be sorted" do snowflake_a = Discord::Snowflake.new(2_u64) snowflake_b = Discord::Snowflake.new(1_u64) snowflake_c = Discord::Snowflake.new(0_u64) array = [snowflake_a, snowflake_b, snowflake_c] array.sort.should eq [snowflake_c, snowflake_b, snowflake_a] end end describe "#creation_time" do it "returns the time the snowflake was created" do time = Time.utc(2018, 4, 18) snowflake = Discord::Snowflake.new(time) snowflake.creation_time.should eq time end end it "compares to uint64" do snowflake = Discord::Snowflake.new(1_u64) (snowflake == 1_u64).should be_true (snowflake == 0_u64).should be_false end end describe UInt64 do it "compares to snowflake" do snowflake = Discord::Snowflake.new(1_u64) (1_u64 == snowflake).should be_true (0_u64 == snowflake).should be_false end end