2 require File.dirname(__FILE__) + '/../test_helper.rb'
5 include Ohcount::Gestalt
7 class DefinitionsTest < Ohcount::Test
9 def test_jasper_reports_java
10 java = SourceFile.new("foo.java", :contents => <<-INLINE_JAVA
11 public class Employee implements Serializable {
12 private net.sf.jasperreports.report myReport;
16 assert platform_names(java.gestalts).include?('jaspersoft')
17 assert platform_names(java.gestalts).include?('jasper_reports')
18 assert platform_names(java.gestalts).include?('jasper_reports_java')
21 def test_jasper_reports_via_maven
22 java = SourceFile.new("pom.xml", :contents => <<-INLINE_POM
24 <groupId>dzrealms</groupId>
25 <artifactId>HelloWorld</artifactId>
26 <version>1.0</version>
29 <groupId>jasperreports</groupId>
30 <artifactId>jasperreports</artifactId>
31 <version>2.0.5</version>
37 assert platform_names(java.gestalts).include?('jaspersoft')
38 assert platform_names(java.gestalts).include?('jasper_reports')
39 assert platform_names(java.gestalts).include?('jasper_reports_java')
42 def test_jasper_server_java
43 java = SourceFile.new("foo.java", :contents => <<-INLINE_JAVA
44 public class Employee implements Serializable {
45 private com.jaspersoft.jasperserver;
49 assert platform_names(java.gestalts).include?('jaspersoft')
50 assert platform_names(java.gestalts).include?('jasper_server')
51 assert platform_names(java.gestalts).include?('jasper_server_java')
54 def test_jasper_intelligence
55 java = SourceFile.new("foo.java", :contents => <<-INLINE_JAVA
56 public class Employee implements Serializable {
57 private com.jaspersoft.ji;
61 assert platform_names(java.gestalts).include?('jaspersoft')
62 assert platform_names(java.gestalts).include?('jasper_intelligence')
65 def test_jasper_server
66 expected = ['scripting', 'ruby', 'jaspersoft', 'jasper_server', 'jasper_server_keyword']
68 rb = SourceFile.new('jasper.rb', :contents => 'def jasper_server; nil ; end')
69 assert_platforms(expected, rb.gestalts)
71 rb = SourceFile.new('jasper.rb', :contents => 'def jasperserver; nil ; end')
72 assert_platforms(expected, rb.gestalts)
74 rb = SourceFile.new('jasper.rb', :contents => 'js = JasperServer.new()')
75 assert_platforms(expected, rb.gestalts)
77 rb = SourceFile.new('jasper.rb', :contents => 'jasper-server')
78 assert_platforms(expected, rb.gestalts)
81 def test_jasper_reports
82 expected = ['scripting', 'ruby', 'jaspersoft', 'jasper_reports', 'jasper_reports_keyword']
84 rb = SourceFile.new('jasper.rb', :contents => 'def jasper_reports; nil ; end')
85 assert_platforms(expected, rb.gestalts)
87 rb = SourceFile.new('jasper.rb', :contents => 'def jasperreports; nil ; end')
88 assert_platforms(expected, rb.gestalts)
90 rb = SourceFile.new('jasper.rb', :contents => 'def JasperReport; nil ; end')
91 assert_platforms(expected, rb.gestalts)
93 rb = SourceFile.new('jasper.rb', :contents => 'jasper-report')
94 assert_platforms(expected, rb.gestalts)
97 def test_jasper_ireport
98 rb = SourceFile.new('jasper.rb', :contents => 'ireport = nil')
99 assert !platform_names(rb.gestalts).include?('jasper_ireport')
101 rb = SourceFile.new('jasper.rb', :contents => 'jasper = nil')
102 assert !platform_names(rb.gestalts).include?('jasper_ireport')
104 rb = SourceFile.new('jasper.rb', :contents => 'jasper_ireport = nil')
105 assert platform_names(rb.gestalts).include?('jasper_ireport')
110 def assert_platforms(expected_names, actual)
111 assert_equal(expected_names.sort, platform_names(actual).sort)
114 def platform_names(gestalts)
115 gestalts.map { |g| g.type == :platform && g.name }.compact