summaryrefslogtreecommitdiffstats
path: root/test/network/client/resource.rb
blob: 86c6ccd2fca2ee59f0c820dd670686e6717ccd36 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
#!/usr/bin/env ruby

require File.dirname(__FILE__) + '/../../lib/puppettest'

require 'puppettest'
require 'puppettest/support/utils'
require 'puppettest/support/assertions'
require 'puppet/network/client/resource'

class TestResourceClient < Test::Unit::TestCase
    include PuppetTest::ServerTest
    include PuppetTest::Support::Utils

    def mkresourceserver
        Puppet::Network::Handler.resource.new
    end

    def mkclient
        client = Puppet::Network::Client.resource.new(:Resource => mkresourceserver)
    end

    def test_resources
        file = tempfile()
        text = "yayness\n"
        File.open(file, "w") { |f| f.print text }

        mkresourceserver()

        client = mkclient()

        # Test describing
        tresource = nil
        assert_nothing_raised {
            tresource = client.describe("file", file)
        }

        assert(tresource, "Did not get response")

        assert_instance_of(Puppet::TransObject, tresource)

        resource = nil
        assert_nothing_raised {
            resource = tresource.to_ral
        }
        assert_events([], resource)
        p resource.instance_variable_get("@stat")
        File.unlink(file)
        assert_events([:file_created], resource)
        File.unlink(file)

        # Now test applying
        result = nil
        assert_nothing_raised {
            result = client.apply(tresource)
        }
        assert(FileTest.exists?(file), "File was not created on apply")

        # Lastly, test "list"
        list = nil
        assert_nothing_raised {
            list = client.list("user")
        }

        assert_instance_of(Puppet::TransBucket, list)

        count = 0
        list.each do |tresource|
            break if count > 3
            assert_instance_of(Puppet::TransObject, tresource)

            tresource2 = nil
            assert_nothing_raised {
                tresource2 = client.describe(tresource.type, tresource.name)
            }

            resource = nil
            assert_nothing_raised {
                resource = tresource2.to_ral
            }
            assert_events([], resource)

            count += 1
        end
    end
end