<?xml version="1.0" encoding="UTF-8"?>
<commit>
  <added type="array">
    <added>
      <filename>test/lib/access_system.rb</filename>
    </added>
    <added>
      <filename>test/lib/read_only_model.rb</filename>
    </added>
    <added>
      <filename>test/lib/restricted_model.rb</filename>
    </added>
  </added>
  <modified type="array">
    <modified>
      <diff>@@ -1,8 +1,67 @@
+$:.unshift(File.dirname(__FILE__) + '/../test/lib')
 require 'test/unit'
+# Example Module and Models
+require 'access_system'
+require 'read_only_model'
+require 'restricted_model'
+
+class Role
+  attr_accessor :name
+end
+
+class User
+  include AccessSystem
+end
 
 class EasyAccessTest &lt; Test::Unit::TestCase
-  # Replace this with your real tests.
-  def test_this_plugin
-    flunk
+
+  def test_including_access_system
+    user = User.new
+    [:can_view?, :can_destroy?, :can_create?, :can_update?].each do |access_method|
+      assert user.respond_to?(access_method)
+    end
+  end
+
+  def test_read_only_model
+    ro = ReadOnlyModel.new
+    user = User.new
+
+    assert user.can_view?(ro)
+    assert_equal false, user.can_destroy?(ro)
+    assert_equal false, user.can_create?(ro)
+    assert_equal false, user.can_update?(ro)
+  end
+
+  def test_restricted_model_for_owner
+    user = User.new
+    class &lt;&lt; user
+      def roles
+        r = Role.new
+        r.name = &quot;Destroyer&quot;
+        [r]
+      end
+    end
+    model = RestrictedModel.new(user)
+
+    assert user.can_view?(model)
+    assert user.can_destroy?(model)
+    assert_equal false, user.can_create?(model) # by default
+    assert user.can_update?(model)
+  end
+
+  def test_restricted_model_for_non_owner
+    owner = User.new
+    model = RestrictedModel.new(owner)
+    user = User.new
+    class &lt;&lt; user 
+      def roles
+        []
+      end
+    end
+
+    assert_equal false, user.can_view?(model)
+    assert_equal false, user.can_destroy?(model)
+    assert_equal false, user.can_create?(model)
+    assert_equal false, user.can_update?(model)
   end
 end</diff>
      <filename>test/easy_access_test.rb</filename>
    </modified>
  </modified>
  <removed type="array"/>
  <parents type="array">
    <parent>
      <id>bb6c7c2c0899601ed1ea6bab6b29a0652d377699</id>
    </parent>
  </parents>
  <author>
    <name>mrchucho</name>
    <email>mrchucho@mrchucho.net</email>
  </author>
  <url>http://github.com/mrchucho/easy-access/commit/e63982c8c0064e3e7cea670c960e169a6bad8fd3</url>
  <id>e63982c8c0064e3e7cea670c960e169a6bad8fd3</id>
  <committed-date>2009-10-21T11:58:45-07:00</committed-date>
  <authored-date>2009-10-21T11:58:45-07:00</authored-date>
  <message>Added unit tests.</message>
  <tree>2c400f8c8cc36d78365fcf58bcdb037ae030b721</tree>
  <committer>
    <name>mrchucho</name>
    <email>mrchucho@mrchucho.net</email>
  </committer>
</commit>
