Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
爱吃血肠
spring-framework
提交
e57047ad
S
spring-framework
项目概览
爱吃血肠
/
spring-framework
通知
1
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
S
spring-framework
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
e57047ad
编写于
12月 21, 2016
作者:
J
Juergen Hoeller
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Remove outdated JasperReports tests (failing due to missing font on CI server)
上级
f85be8eb
变更
17
隐藏空白更改
内联
并排
Showing
17 changed file
with
0 addition
and
1628 deletion
+0
-1628
spring-context-support/src/test/java/org/springframework/ui/jasperreports/JasperReportsUtilsTests.java
...ngframework/ui/jasperreports/JasperReportsUtilsTests.java
+0
-249
spring-context-support/src/test/java/org/springframework/ui/jasperreports/PersonBean.java
...java/org/springframework/ui/jasperreports/PersonBean.java
+0
-64
spring-context-support/src/test/java/org/springframework/ui/jasperreports/ProductBean.java
...ava/org/springframework/ui/jasperreports/ProductBean.java
+0
-64
spring-webmvc/src/test/java/org/springframework/web/servlet/view/jasperreports/AbstractConfigurableJasperReportsViewTests.java
...erreports/AbstractConfigurableJasperReportsViewTests.java
+0
-38
spring-webmvc/src/test/java/org/springframework/web/servlet/view/jasperreports/AbstractJasperReportsTests.java
...ervlet/view/jasperreports/AbstractJasperReportsTests.java
+0
-107
spring-webmvc/src/test/java/org/springframework/web/servlet/view/jasperreports/AbstractJasperReportsViewTests.java
...et/view/jasperreports/AbstractJasperReportsViewTests.java
+0
-423
spring-webmvc/src/test/java/org/springframework/web/servlet/view/jasperreports/ConfigurableJasperReportsViewWithStreamTests.java
...reports/ConfigurableJasperReportsViewWithStreamTests.java
+0
-39
spring-webmvc/src/test/java/org/springframework/web/servlet/view/jasperreports/ConfigurableJasperReportsViewWithWriterTests.java
...reports/ConfigurableJasperReportsViewWithWriterTests.java
+0
-39
spring-webmvc/src/test/java/org/springframework/web/servlet/view/jasperreports/ExporterParameterTests.java
...eb/servlet/view/jasperreports/ExporterParameterTests.java
+0
-162
spring-webmvc/src/test/java/org/springframework/web/servlet/view/jasperreports/JasperReportViewResolverTests.java
...let/view/jasperreports/JasperReportViewResolverTests.java
+0
-92
spring-webmvc/src/test/java/org/springframework/web/servlet/view/jasperreports/JasperReportsCsvViewTests.java
...servlet/view/jasperreports/JasperReportsCsvViewTests.java
+0
-34
spring-webmvc/src/test/java/org/springframework/web/servlet/view/jasperreports/JasperReportsHtmlViewTests.java
...ervlet/view/jasperreports/JasperReportsHtmlViewTests.java
+0
-59
spring-webmvc/src/test/java/org/springframework/web/servlet/view/jasperreports/JasperReportsMultiFormatViewTests.java
...view/jasperreports/JasperReportsMultiFormatViewTests.java
+0
-135
spring-webmvc/src/test/java/org/springframework/web/servlet/view/jasperreports/JasperReportsMultiFormatViewWithCustomMappingsTests.java
.../JasperReportsMultiFormatViewWithCustomMappingsTests.java
+0
-51
spring-webmvc/src/test/java/org/springframework/web/servlet/view/jasperreports/JasperReportsPdfViewTests.java
...servlet/view/jasperreports/JasperReportsPdfViewTests.java
+0
-34
spring-webmvc/src/test/java/org/springframework/web/servlet/view/jasperreports/JasperReportsXlsViewTests.java
...servlet/view/jasperreports/JasperReportsXlsViewTests.java
+0
-34
spring-webmvc/src/test/java/org/springframework/web/servlet/view/jasperreports/view.properties
...gframework/web/servlet/view/jasperreports/view.properties
+0
-4
未找到文件。
spring-context-support/src/test/java/org/springframework/ui/jasperreports/JasperReportsUtilsTests.java
已删除
100644 → 0
浏览文件 @
f85be8eb
/*
* Copyright 2002-2012 the original author or authors.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package
org.springframework.ui.jasperreports
;
import
java.io.ByteArrayInputStream
;
import
java.io.ByteArrayOutputStream
;
import
java.io.StringWriter
;
import
java.util.ArrayList
;
import
java.util.HashMap
;
import
java.util.List
;
import
java.util.Locale
;
import
java.util.Map
;
import
java.util.ResourceBundle
;
import
junit.framework.TestCase
;
import
net.sf.jasperreports.engine.JRDataSource
;
import
net.sf.jasperreports.engine.JRExporterParameter
;
import
net.sf.jasperreports.engine.JRParameter
;
import
net.sf.jasperreports.engine.JasperFillManager
;
import
net.sf.jasperreports.engine.JasperPrint
;
import
net.sf.jasperreports.engine.JasperReport
;
import
net.sf.jasperreports.engine.data.JRBeanCollectionDataSource
;
import
net.sf.jasperreports.engine.export.JRCsvExporterParameter
;
import
net.sf.jasperreports.engine.export.JRExportProgressMonitor
;
import
net.sf.jasperreports.engine.export.JRHtmlExporter
;
import
net.sf.jasperreports.engine.export.JRHtmlExporterParameter
;
import
net.sf.jasperreports.engine.export.JRPdfExporter
;
import
net.sf.jasperreports.engine.export.JRPdfExporterParameter
;
import
net.sf.jasperreports.engine.export.JRXlsExporterParameter
;
import
net.sf.jasperreports.engine.util.JRLoader
;
import
org.apache.poi.hssf.usermodel.HSSFCell
;
import
org.apache.poi.hssf.usermodel.HSSFRow
;
import
org.apache.poi.hssf.usermodel.HSSFSheet
;
import
org.apache.poi.hssf.usermodel.HSSFWorkbook
;
import
org.springframework.core.io.ClassPathResource
;
/**
* @author Rob Harrop
* @author Juergen Hoeller
* @since 18.11.2004
*/
public
class
JasperReportsUtilsTests
extends
TestCase
{
public
void
testRenderAsCsvWithDataSource
()
throws
Exception
{
StringWriter
writer
=
new
StringWriter
();
JasperReportsUtils
.
renderAsCsv
(
getReport
(),
getParameters
(),
getDataSource
(),
writer
);
String
output
=
writer
.
getBuffer
().
toString
();
assertCsvOutputCorrect
(
output
);
}
public
void
testRenderAsCsvWithCollection
()
throws
Exception
{
StringWriter
writer
=
new
StringWriter
();
JasperReportsUtils
.
renderAsCsv
(
getReport
(),
getParameters
(),
getData
(),
writer
);
String
output
=
writer
.
getBuffer
().
toString
();
assertCsvOutputCorrect
(
output
);
}
public
void
testRenderAsCsvWithExporterParameters
()
throws
Exception
{
StringWriter
writer
=
new
StringWriter
();
Map
<
JRExporterParameter
,
Object
>
exporterParameters
=
new
HashMap
<
JRExporterParameter
,
Object
>();
exporterParameters
.
put
(
JRCsvExporterParameter
.
FIELD_DELIMITER
,
"~"
);
JasperReportsUtils
.
renderAsCsv
(
getReport
(),
getParameters
(),
getData
(),
writer
,
exporterParameters
);
String
output
=
writer
.
getBuffer
().
toString
();
assertCsvOutputCorrect
(
output
);
assertTrue
(
"Delimiter is incorrect"
,
output
.
contains
(
"~"
));
}
public
void
testRenderAsHtmlWithDataSource
()
throws
Exception
{
StringWriter
writer
=
new
StringWriter
();
JasperReportsUtils
.
renderAsHtml
(
getReport
(),
getParameters
(),
getDataSource
(),
writer
);
String
output
=
writer
.
getBuffer
().
toString
();
assertHtmlOutputCorrect
(
output
);
}
public
void
testRenderAsHtmlWithCollection
()
throws
Exception
{
StringWriter
writer
=
new
StringWriter
();
JasperReportsUtils
.
renderAsHtml
(
getReport
(),
getParameters
(),
getData
(),
writer
);
String
output
=
writer
.
getBuffer
().
toString
();
assertHtmlOutputCorrect
(
output
);
}
public
void
testRenderAsHtmlWithExporterParameters
()
throws
Exception
{
StringWriter
writer
=
new
StringWriter
();
Map
<
JRExporterParameter
,
Object
>
exporterParameters
=
new
HashMap
<
JRExporterParameter
,
Object
>();
String
uri
=
"/my/uri"
;
exporterParameters
.
put
(
JRHtmlExporterParameter
.
IMAGES_URI
,
uri
);
JasperReportsUtils
.
renderAsHtml
(
getReport
(),
getParameters
(),
getData
(),
writer
,
exporterParameters
);
String
output
=
writer
.
getBuffer
().
toString
();
assertHtmlOutputCorrect
(
output
);
assertTrue
(
"URI not included"
,
output
.
contains
(
uri
));
}
public
void
testRenderAsPdfWithDataSource
()
throws
Exception
{
ByteArrayOutputStream
os
=
new
ByteArrayOutputStream
();
JasperReportsUtils
.
renderAsPdf
(
getReport
(),
getParameters
(),
getDataSource
(),
os
);
byte
[]
output
=
os
.
toByteArray
();
assertPdfOutputCorrect
(
output
);
}
public
void
testRenderAsPdfWithCollection
()
throws
Exception
{
ByteArrayOutputStream
os
=
new
ByteArrayOutputStream
();
JasperReportsUtils
.
renderAsPdf
(
getReport
(),
getParameters
(),
getData
(),
os
);
byte
[]
output
=
os
.
toByteArray
();
assertPdfOutputCorrect
(
output
);
}
public
void
testRenderAsPdfWithExporterParameters
()
throws
Exception
{
ByteArrayOutputStream
os
=
new
ByteArrayOutputStream
();
Map
<
JRExporterParameter
,
Object
>
exporterParameters
=
new
HashMap
<
JRExporterParameter
,
Object
>();
exporterParameters
.
put
(
JRPdfExporterParameter
.
PDF_VERSION
,
JRPdfExporterParameter
.
PDF_VERSION_1_6
);
JasperReportsUtils
.
renderAsPdf
(
getReport
(),
getParameters
(),
getData
(),
os
,
exporterParameters
);
byte
[]
output
=
os
.
toByteArray
();
assertPdfOutputCorrect
(
output
);
assertTrue
(
new
String
(
output
).
contains
(
"PDF-1.6"
));
}
public
void
testRenderAsXlsWithDataSource
()
throws
Exception
{
ByteArrayOutputStream
os
=
new
ByteArrayOutputStream
();
JasperReportsUtils
.
renderAsXls
(
getReport
(),
getParameters
(),
getDataSource
(),
os
);
byte
[]
output
=
os
.
toByteArray
();
assertXlsOutputCorrect
(
output
);
}
public
void
testRenderAsXlsWithCollection
()
throws
Exception
{
ByteArrayOutputStream
os
=
new
ByteArrayOutputStream
();
JasperReportsUtils
.
renderAsXls
(
getReport
(),
getParameters
(),
getData
(),
os
);
byte
[]
output
=
os
.
toByteArray
();
assertXlsOutputCorrect
(
output
);
}
public
void
testRenderAsXlsWithExporterParameters
()
throws
Exception
{
ByteArrayOutputStream
os
=
new
ByteArrayOutputStream
();
Map
<
JRExporterParameter
,
Object
>
exporterParameters
=
new
HashMap
<
JRExporterParameter
,
Object
>();
SimpleProgressMonitor
monitor
=
new
SimpleProgressMonitor
();
exporterParameters
.
put
(
JRXlsExporterParameter
.
PROGRESS_MONITOR
,
monitor
);
JasperReportsUtils
.
renderAsXls
(
getReport
(),
getParameters
(),
getData
(),
os
,
exporterParameters
);
byte
[]
output
=
os
.
toByteArray
();
assertXlsOutputCorrect
(
output
);
assertTrue
(
monitor
.
isInvoked
());
}
public
void
testRenderWithWriter
()
throws
Exception
{
StringWriter
writer
=
new
StringWriter
();
JasperPrint
print
=
JasperFillManager
.
fillReport
(
getReport
(),
getParameters
(),
getDataSource
());
JasperReportsUtils
.
render
(
new
JRHtmlExporter
(),
print
,
writer
);
String
output
=
writer
.
getBuffer
().
toString
();
assertHtmlOutputCorrect
(
output
);
}
public
void
testRenderWithOutputStream
()
throws
Exception
{
ByteArrayOutputStream
os
=
new
ByteArrayOutputStream
();
JasperPrint
print
=
JasperFillManager
.
fillReport
(
getReport
(),
getParameters
(),
getDataSource
());
JasperReportsUtils
.
render
(
new
JRPdfExporter
(),
print
,
os
);
byte
[]
output
=
os
.
toByteArray
();
assertPdfOutputCorrect
(
output
);
}
private
void
assertCsvOutputCorrect
(
String
output
)
{
assertTrue
(
"Output length should be greater than 0"
,
(
output
.
length
()
>
0
));
assertTrue
(
"Output should start with Dear Lord!"
,
output
.
startsWith
(
"Dear Lord!"
));
assertTrue
(
"Output should contain 'MeineSeite'"
,
output
.
contains
(
"MeineSeite"
));
}
private
void
assertHtmlOutputCorrect
(
String
output
)
{
assertTrue
(
"Output length should be greater than 0"
,
(
output
.
length
()
>
0
));
assertTrue
(
"Output should contain <html>"
,
output
.
contains
(
"<html>"
));
assertTrue
(
"Output should contain 'MeineSeite'"
,
output
.
contains
(
"MeineSeite"
));
}
private
void
assertPdfOutputCorrect
(
byte
[]
output
)
throws
Exception
{
assertTrue
(
"Output length should be greater than 0"
,
(
output
.
length
>
0
));
String
translated
=
new
String
(
output
,
"US-ASCII"
);
assertTrue
(
"Output should start with %PDF"
,
translated
.
startsWith
(
"%PDF"
));
}
private
void
assertXlsOutputCorrect
(
byte
[]
output
)
throws
Exception
{
HSSFWorkbook
workbook
=
new
HSSFWorkbook
(
new
ByteArrayInputStream
(
output
));
HSSFSheet
sheet
=
workbook
.
getSheetAt
(
0
);
assertNotNull
(
"Sheet should not be null"
,
sheet
);
HSSFRow
row
=
sheet
.
getRow
(
3
);
HSSFCell
cell
=
row
.
getCell
((
short
)
1
);
assertNotNull
(
"Cell should not be null"
,
cell
);
assertEquals
(
"Cell content should be Dear Lord!"
,
"Dear Lord!"
,
cell
.
getRichStringCellValue
().
getString
());
}
private
JasperReport
getReport
()
throws
Exception
{
ClassPathResource
resource
=
new
ClassPathResource
(
"DataSourceReport.jasper"
,
getClass
());
return
(
JasperReport
)
JRLoader
.
loadObject
(
resource
.
getInputStream
());
}
private
Map
<
String
,
Object
>
getParameters
()
{
Map
<
String
,
Object
>
model
=
new
HashMap
<
String
,
Object
>();
model
.
put
(
"ReportTitle"
,
"Dear Lord!"
);
model
.
put
(
JRParameter
.
REPORT_LOCALE
,
Locale
.
GERMAN
);
model
.
put
(
JRParameter
.
REPORT_RESOURCE_BUNDLE
,
ResourceBundle
.
getBundle
(
"org/springframework/ui/jasperreports/messages"
,
Locale
.
GERMAN
));
return
model
;
}
private
JRDataSource
getDataSource
()
{
return
new
JRBeanCollectionDataSource
(
getData
());
}
private
List
<
PersonBean
>
getData
()
{
List
<
PersonBean
>
list
=
new
ArrayList
<
PersonBean
>();
for
(
int
x
=
0
;
x
<
10
;
x
++)
{
PersonBean
bean
=
new
PersonBean
();
bean
.
setId
(
x
);
bean
.
setName
(
"Rob Harrop"
);
bean
.
setStreet
(
"foo"
);
list
.
add
(
bean
);
}
return
list
;
}
private
static
class
SimpleProgressMonitor
implements
JRExportProgressMonitor
{
private
boolean
invoked
=
false
;
@Override
public
void
afterPageExport
()
{
this
.
invoked
=
true
;
}
public
boolean
isInvoked
()
{
return
invoked
;
}
}
}
spring-context-support/src/test/java/org/springframework/ui/jasperreports/PersonBean.java
已删除
100644 → 0
浏览文件 @
f85be8eb
/*
* Copyright 2002-2005 the original author or authors.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package
org.springframework.ui.jasperreports
;
/**
* @author Rob Harrop
*/
public
class
PersonBean
{
private
int
id
;
private
String
name
;
private
String
street
;
private
String
city
;
public
String
getCity
()
{
return
city
;
}
public
void
setCity
(
String
city
)
{
this
.
city
=
city
;
}
public
int
getId
()
{
return
id
;
}
public
void
setId
(
int
id
)
{
this
.
id
=
id
;
}
public
String
getName
()
{
return
name
;
}
public
void
setName
(
String
name
)
{
this
.
name
=
name
;
}
public
String
getStreet
()
{
return
street
;
}
public
void
setStreet
(
String
street
)
{
this
.
street
=
street
;
}
}
spring-context-support/src/test/java/org/springframework/ui/jasperreports/ProductBean.java
已删除
100644 → 0
浏览文件 @
f85be8eb
/*
* Copyright 2002-2005 the original author or authors.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package
org.springframework.ui.jasperreports
;
/**
* @author Rob Harrop
*/
public
class
ProductBean
{
private
int
id
;
private
String
name
;
private
float
quantity
;
private
float
price
;
public
int
getId
()
{
return
id
;
}
public
void
setId
(
int
id
)
{
this
.
id
=
id
;
}
public
String
getName
()
{
return
name
;
}
public
void
setName
(
String
name
)
{
this
.
name
=
name
;
}
public
float
getQuantity
()
{
return
quantity
;
}
public
void
setQuantity
(
float
quantity
)
{
this
.
quantity
=
quantity
;
}
public
float
getPrice
()
{
return
price
;
}
public
void
setPrice
(
float
price
)
{
this
.
price
=
price
;
}
}
spring-webmvc/src/test/java/org/springframework/web/servlet/view/jasperreports/AbstractConfigurableJasperReportsViewTests.java
已删除
100644 → 0
浏览文件 @
f85be8eb
/*
* Copyright 2002-2010 the original author or authors.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package
org.springframework.web.servlet.view.jasperreports
;
import
org.springframework.context.support.StaticApplicationContext
;
/**
* @author Rob Harrop
*/
public
abstract
class
AbstractConfigurableJasperReportsViewTests
extends
AbstractJasperReportsViewTests
{
public
void
testNoConfiguredExporter
()
throws
Exception
{
ConfigurableJasperReportsView
view
=
new
ConfigurableJasperReportsView
();
view
.
setUrl
(
COMPILED_REPORT
);
try
{
view
.
setApplicationContext
(
new
StaticApplicationContext
());
fail
(
"Should not be able to setup view class without an exporter class."
);
}
catch
(
IllegalArgumentException
e
)
{
// success
}
}
}
spring-webmvc/src/test/java/org/springframework/web/servlet/view/jasperreports/AbstractJasperReportsTests.java
已删除
100644 → 0
浏览文件 @
f85be8eb
/*
* Copyright 2002-2012 the original author or authors.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package
org.springframework.web.servlet.view.jasperreports
;
import
java.util.ArrayList
;
import
java.util.HashMap
;
import
java.util.List
;
import
java.util.Locale
;
import
java.util.Map
;
import
junit.framework.TestCase
;
import
net.sf.jasperreports.engine.data.JRBeanCollectionDataSource
;
import
org.springframework.mock.web.test.MockHttpServletRequest
;
import
org.springframework.mock.web.test.MockHttpServletResponse
;
import
org.springframework.ui.jasperreports.PersonBean
;
import
org.springframework.ui.jasperreports.ProductBean
;
import
org.springframework.util.ClassUtils
;
import
org.springframework.web.servlet.DispatcherServlet
;
import
org.springframework.web.servlet.i18n.AcceptHeaderLocaleResolver
;
/**
* @author Rob Harrop
* @author Juergen Hoeller
*/
public
abstract
class
AbstractJasperReportsTests
extends
TestCase
{
protected
static
final
String
COMPILED_REPORT
=
"/org/springframework/ui/jasperreports/DataSourceReport.jasper"
;
protected
static
final
String
UNCOMPILED_REPORT
=
"/org/springframework/ui/jasperreports/DataSourceReport.jrxml"
;
protected
static
final
String
SUB_REPORT_PARENT
=
"/org/springframework/ui/jasperreports/subReportParent.jrxml"
;
protected
static
final
boolean
canCompileReport
=
ClassUtils
.
isPresent
(
"org.eclipse.jdt.internal.compiler.Compiler"
,
AbstractJasperReportsTests
.
class
.
getClassLoader
());
protected
MockHttpServletRequest
request
;
protected
MockHttpServletResponse
response
;
@Override
public
void
setUp
()
{
request
=
new
MockHttpServletRequest
();
response
=
new
MockHttpServletResponse
();
request
.
setAttribute
(
DispatcherServlet
.
LOCALE_RESOLVER_ATTRIBUTE
,
new
AcceptHeaderLocaleResolver
());
request
.
addPreferredLocale
(
Locale
.
GERMAN
);
}
protected
Map
<
String
,
Object
>
getModel
()
{
Map
model
=
new
HashMap
();
model
.
put
(
"ReportTitle"
,
"Dear Lord!"
);
model
.
put
(
"dataSource"
,
new
JRBeanCollectionDataSource
(
getData
()));
extendModel
(
model
);
return
model
;
}
/**
* Subclasses can extend the model if they need to.
*/
protected
void
extendModel
(
Map
<
String
,
Object
>
model
)
{
}
protected
List
getData
()
{
List
list
=
new
ArrayList
();
for
(
int
x
=
0
;
x
<
10
;
x
++)
{
PersonBean
bean
=
new
PersonBean
();
bean
.
setId
(
x
);
bean
.
setName
(
"Rob Harrop"
);
bean
.
setStreet
(
"foo"
);
list
.
add
(
bean
);
}
return
list
;
}
protected
List
getProductData
()
{
List
list
=
new
ArrayList
();
for
(
int
x
=
0
;
x
<
10
;
x
++)
{
ProductBean
bean
=
new
ProductBean
();
bean
.
setId
(
x
);
bean
.
setName
(
"Foo Bar"
);
bean
.
setPrice
(
1.9f
);
bean
.
setQuantity
(
1.0f
);
list
.
add
(
bean
);
}
return
list
;
}
}
spring-webmvc/src/test/java/org/springframework/web/servlet/view/jasperreports/AbstractJasperReportsViewTests.java
已删除
100755 → 0
浏览文件 @
f85be8eb
/*
* Copyright 2002-2013 the original author or authors.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package
org.springframework.web.servlet.view.jasperreports
;
import
java.sql.SQLException
;
import
java.util.HashMap
;
import
java.util.LinkedList
;
import
java.util.Locale
;
import
java.util.Map
;
import
java.util.Properties
;
import
javax.servlet.http.HttpServletResponse
;
import
javax.sql.DataSource
;
import
net.sf.jasperreports.engine.JRDataSource
;
import
net.sf.jasperreports.engine.JRException
;
import
net.sf.jasperreports.engine.JRExporterParameter
;
import
net.sf.jasperreports.engine.JasperReport
;
import
net.sf.jasperreports.engine.data.JRAbstractBeanDataSourceProvider
;
import
net.sf.jasperreports.engine.data.JRBeanCollectionDataSource
;
import
org.junit.Ignore
;
import
org.springframework.context.ApplicationContextException
;
import
org.springframework.mock.web.test.MockServletContext
;
import
org.springframework.ui.jasperreports.PersonBean
;
import
org.springframework.web.context.support.StaticWebApplicationContext
;
import
org.springframework.web.servlet.DispatcherServlet
;
import
static
org
.
mockito
.
BDDMockito
.*;
/**
* @author Rob Harrop
* @author Juergen Hoeller
*/
public
abstract
class
AbstractJasperReportsViewTests
extends
AbstractJasperReportsTests
{
protected
AbstractJasperReportsView
getView
(
String
url
)
throws
Exception
{
AbstractJasperReportsView
view
=
getViewImplementation
();
view
.
setUrl
(
url
);
StaticWebApplicationContext
ac
=
new
StaticWebApplicationContext
();
ac
.
setServletContext
(
new
MockServletContext
());
ac
.
addMessage
(
"page"
,
Locale
.
GERMAN
,
"MeineSeite"
);
ac
.
refresh
();
request
.
setAttribute
(
DispatcherServlet
.
WEB_APPLICATION_CONTEXT_ATTRIBUTE
,
ac
);
view
.
setApplicationContext
(
ac
);
return
view
;
}
/**
* Simple test to see if compiled report succeeds.
*/
public
void
testCompiledReport
()
throws
Exception
{
AbstractJasperReportsView
view
=
getView
(
COMPILED_REPORT
);
view
.
render
(
getModel
(),
request
,
response
);
assertTrue
(
response
.
getContentAsByteArray
().
length
>
0
);
if
(
view
instanceof
AbstractJasperReportsSingleFormatView
&&
((
AbstractJasperReportsSingleFormatView
)
view
).
useWriter
())
{
String
output
=
response
.
getContentAsString
();
assertTrue
(
"Output should contain 'MeineSeite'"
,
output
.
contains
(
"MeineSeite"
));
}
}
public
void
testUncompiledReport
()
throws
Exception
{
if
(!
canCompileReport
)
{
return
;
}
AbstractJasperReportsView
view
=
getView
(
UNCOMPILED_REPORT
);
view
.
render
(
getModel
(),
request
,
response
);
assertTrue
(
response
.
getContentAsByteArray
().
length
>
0
);
}
public
void
testWithInvalidPath
()
throws
Exception
{
try
{
getView
(
"foo.jasper"
);
fail
(
"Invalid path should throw ApplicationContextException"
);
}
catch
(
ApplicationContextException
ex
)
{
// good!
}
}
public
void
testInvalidExtension
()
throws
Exception
{
try
{
getView
(
"foo.bar"
);
fail
(
"Invalid extension should throw IllegalArgumentException"
);
}
catch
(
IllegalArgumentException
ex
)
{
// expected
}
}
public
void
testContentType
()
throws
Exception
{
AbstractJasperReportsView
view
=
getView
(
COMPILED_REPORT
);
view
.
render
(
getModel
(),
request
,
response
);
assertEquals
(
"Response content type is incorrect"
,
getDesiredContentType
(),
response
.
getContentType
());
}
public
void
testWithoutDatasource
()
throws
Exception
{
Map
model
=
getModel
();
model
.
remove
(
"dataSource"
);
AbstractJasperReportsView
view
=
getView
(
COMPILED_REPORT
);
view
.
render
(
model
,
request
,
response
);
assertTrue
(
response
.
getStatus
()
==
HttpServletResponse
.
SC_OK
);
}
public
void
testWithCollection
()
throws
Exception
{
Map
model
=
getModel
();
model
.
remove
(
"dataSource"
);
model
.
put
(
"reportData"
,
getData
());
AbstractJasperReportsView
view
=
getView
(
COMPILED_REPORT
);
view
.
render
(
model
,
request
,
response
);
assertTrue
(
response
.
getContentAsByteArray
().
length
>
0
);
}
public
void
testWithMultipleCollections
()
throws
Exception
{
Map
model
=
getModel
();
model
.
remove
(
"dataSource"
);
model
.
put
(
"reportData"
,
getData
());
model
.
put
(
"otherData"
,
new
LinkedList
());
AbstractJasperReportsView
view
=
getView
(
COMPILED_REPORT
);
view
.
render
(
model
,
request
,
response
);
// no clear data source found
}
public
void
testWithJRDataSourceProvider
()
throws
Exception
{
Map
model
=
getModel
();
model
.
remove
(
"dataSource"
);
model
.
put
(
"dataSource"
,
new
MockDataSourceProvider
(
PersonBean
.
class
));
AbstractJasperReportsView
view
=
getView
(
COMPILED_REPORT
);
view
.
render
(
model
,
request
,
response
);
assertTrue
(
response
.
getContentAsByteArray
().
length
>
0
);
}
public
void
testWithSpecificCollection
()
throws
Exception
{
Map
model
=
getModel
();
model
.
remove
(
"dataSource"
);
model
.
put
(
"reportData"
,
getData
());
model
.
put
(
"otherData"
,
new
LinkedList
());
AbstractJasperReportsView
view
=
getView
(
COMPILED_REPORT
);
view
.
setReportDataKey
(
"reportData"
);
view
.
render
(
model
,
request
,
response
);
assertTrue
(
response
.
getContentAsByteArray
().
length
>
0
);
}
public
void
testWithArray
()
throws
Exception
{
Map
model
=
getModel
();
model
.
remove
(
"dataSource"
);
model
.
put
(
"reportData"
,
getData
().
toArray
());
AbstractJasperReportsView
view
=
getView
(
COMPILED_REPORT
);
view
.
render
(
model
,
request
,
response
);
assertTrue
(
response
.
getContentAsByteArray
().
length
>
0
);
}
public
void
testWithMultipleArrays
()
throws
Exception
{
Map
model
=
getModel
();
model
.
remove
(
"dataSource"
);
model
.
put
(
"reportData"
,
getData
().
toArray
());
model
.
put
(
"otherData"
,
new
String
[
0
]);
AbstractJasperReportsView
view
=
getView
(
COMPILED_REPORT
);
view
.
render
(
model
,
request
,
response
);
// no clear data source found
}
public
void
testWithSpecificArray
()
throws
Exception
{
Map
model
=
getModel
();
model
.
remove
(
"dataSource"
);
model
.
put
(
"reportData"
,
getData
().
toArray
());
model
.
put
(
"otherData"
,
new
String
[
0
]);
AbstractJasperReportsView
view
=
getView
(
COMPILED_REPORT
);
view
.
setReportDataKey
(
"reportData"
);
view
.
render
(
model
,
request
,
response
);
assertTrue
(
response
.
getContentAsByteArray
().
length
>
0
);
}
public
void
testWithSubReport
()
throws
Exception
{
if
(!
canCompileReport
)
{
return
;
}
Map
model
=
getModel
();
model
.
put
(
"SubReportData"
,
getProductData
());
Properties
subReports
=
new
Properties
();
subReports
.
put
(
"ProductsSubReport"
,
"/org/springframework/ui/jasperreports/subReportChild.jrxml"
);
AbstractJasperReportsView
view
=
getView
(
SUB_REPORT_PARENT
);
view
.
setReportDataKey
(
"dataSource"
);
view
.
setSubReportUrls
(
subReports
);
view
.
setSubReportDataKeys
(
new
String
[]{
"SubReportData"
});
view
.
initApplicationContext
();
view
.
render
(
model
,
request
,
response
);
assertTrue
(
response
.
getContentAsByteArray
().
length
>
0
);
}
public
void
testWithNonExistentSubReport
()
throws
Exception
{
if
(!
canCompileReport
)
{
return
;
}
Map
model
=
getModel
();
model
.
put
(
"SubReportData"
,
getProductData
());
Properties
subReports
=
new
Properties
();
subReports
.
put
(
"ProductsSubReport"
,
"org/springframework/ui/jasperreports/subReportChildFalse.jrxml"
);
AbstractJasperReportsView
view
=
getView
(
SUB_REPORT_PARENT
);
view
.
setReportDataKey
(
"dataSource"
);
view
.
setSubReportUrls
(
subReports
);
view
.
setSubReportDataKeys
(
new
String
[]{
"SubReportData"
});
try
{
view
.
initApplicationContext
();
fail
(
"Invalid report URL should throw ApplicationContext Exception"
);
}
catch
(
ApplicationContextException
ex
)
{
// success
}
}
@Ignore
public
void
ignoreTestOverrideExporterParameters
()
throws
Exception
{
AbstractJasperReportsView
view
=
getView
(
COMPILED_REPORT
);
if
(!(
view
instanceof
AbstractJasperReportsSingleFormatView
)
||
!((
AbstractJasperReportsSingleFormatView
)
view
).
useWriter
())
{
return
;
}
String
characterEncoding
=
"UTF-8"
;
String
overiddenCharacterEncoding
=
"ASCII"
;
Map
parameters
=
new
HashMap
();
parameters
.
put
(
JRExporterParameter
.
CHARACTER_ENCODING
,
characterEncoding
);
view
.
setExporterParameters
(
parameters
);
view
.
convertExporterParameters
();
Map
model
=
getModel
();
model
.
put
(
JRExporterParameter
.
CHARACTER_ENCODING
,
overiddenCharacterEncoding
);
view
.
render
(
model
,
this
.
request
,
this
.
response
);
assertEquals
(
overiddenCharacterEncoding
,
this
.
response
.
getCharacterEncoding
());
}
public
void
testSubReportWithUnspecifiedParentDataSource
()
throws
Exception
{
if
(!
canCompileReport
)
{
return
;
}
Map
model
=
getModel
();
model
.
put
(
"SubReportData"
,
getProductData
());
Properties
subReports
=
new
Properties
();
subReports
.
put
(
"ProductsSubReport"
,
"org/springframework/ui/jasperreports/subReportChildFalse.jrxml"
);
AbstractJasperReportsView
view
=
getView
(
SUB_REPORT_PARENT
);
view
.
setSubReportUrls
(
subReports
);
view
.
setSubReportDataKeys
(
new
String
[]{
"SubReportData"
});
try
{
view
.
initApplicationContext
();
fail
(
"Unspecified reportDataKey should throw exception when subReportDataSources is specified"
);
}
catch
(
ApplicationContextException
ex
)
{
// success
}
}
public
void
testContentDisposition
()
throws
Exception
{
AbstractJasperReportsView
view
=
getView
(
COMPILED_REPORT
);
view
.
render
(
getModel
(),
request
,
response
);
assertEquals
(
"Invalid content type"
,
"inline"
,
response
.
getHeader
(
"Content-Disposition"
));
}
public
void
testOverrideContentDisposition
()
throws
Exception
{
Properties
headers
=
new
Properties
();
String
cd
=
"attachment"
;
headers
.
setProperty
(
"Content-Disposition"
,
cd
);
AbstractJasperReportsView
view
=
getView
(
COMPILED_REPORT
);
view
.
setHeaders
(
headers
);
view
.
render
(
getModel
(),
request
,
response
);
assertEquals
(
"Invalid content type"
,
cd
,
response
.
getHeader
(
"Content-Disposition"
));
}
public
void
testSetCustomHeaders
()
throws
Exception
{
Properties
headers
=
new
Properties
();
String
key
=
"foo"
;
String
value
=
"bar"
;
headers
.
setProperty
(
key
,
value
);
AbstractJasperReportsView
view
=
getView
(
COMPILED_REPORT
);
view
.
setHeaders
(
headers
);
view
.
render
(
getModel
(),
request
,
response
);
assertNotNull
(
"Header not present"
,
response
.
getHeader
(
key
));
assertEquals
(
"Invalid header value"
,
value
,
response
.
getHeader
(
key
));
}
public
void
testWithJdbcDataSource
()
throws
Exception
{
if
(!
canCompileReport
)
{
return
;
}
AbstractJasperReportsView
view
=
getView
(
UNCOMPILED_REPORT
);
view
.
setJdbcDataSource
(
getMockJdbcDataSource
());
Map
model
=
getModel
();
model
.
remove
(
"dataSource"
);
try
{
view
.
render
(
model
,
request
,
response
);
fail
(
"DataSource was not used as report DataSource"
);
}
catch
(
SQLException
ex
)
{
// expected
}
}
public
void
testWithJdbcDataSourceInModel
()
throws
Exception
{
if
(!
canCompileReport
)
{
return
;
}
AbstractJasperReportsView
view
=
getView
(
UNCOMPILED_REPORT
);
Map
model
=
getModel
();
model
.
remove
(
"dataSource"
);
model
.
put
(
"someKey"
,
getMockJdbcDataSource
());
try
{
view
.
render
(
model
,
request
,
response
);
fail
(
"DataSource was not used as report DataSource"
);
}
catch
(
SQLException
ex
)
{
// expected
}
}
public
void
testJRDataSourceOverridesJdbcDataSource
()
throws
Exception
{
if
(!
canCompileReport
)
{
return
;
}
AbstractJasperReportsView
view
=
getView
(
UNCOMPILED_REPORT
);
view
.
setJdbcDataSource
(
getMockJdbcDataSource
());
try
{
view
.
render
(
getModel
(),
request
,
response
);
}
catch
(
SQLException
ex
)
{
fail
(
"javax.sql.DataSource was used when JRDataSource should have overridden it"
);
}
}
private
DataSource
getMockJdbcDataSource
()
throws
SQLException
{
DataSource
ds
=
mock
(
DataSource
.
class
);
given
(
ds
.
getConnection
()).
willThrow
(
new
SQLException
());
return
ds
;
}
public
void
testWithCharacterEncoding
()
throws
Exception
{
AbstractJasperReportsView
view
=
getView
(
COMPILED_REPORT
);
if
(!(
view
instanceof
AbstractJasperReportsSingleFormatView
)
||
!((
AbstractJasperReportsSingleFormatView
)
view
).
useWriter
())
{
return
;
}
String
characterEncoding
=
"UTF-8"
;
Map
parameters
=
new
HashMap
();
parameters
.
put
(
JRExporterParameter
.
CHARACTER_ENCODING
,
characterEncoding
);
view
.
setExporterParameters
(
parameters
);
view
.
convertExporterParameters
();
view
.
render
(
getModel
(),
this
.
request
,
this
.
response
);
assertEquals
(
characterEncoding
,
this
.
response
.
getCharacterEncoding
());
}
protected
abstract
AbstractJasperReportsView
getViewImplementation
();
protected
abstract
String
getDesiredContentType
();
private
class
MockDataSourceProvider
extends
JRAbstractBeanDataSourceProvider
{
public
MockDataSourceProvider
(
Class
clazz
)
{
super
(
clazz
);
}
@Override
public
JRDataSource
create
(
JasperReport
jasperReport
)
throws
JRException
{
return
new
JRBeanCollectionDataSource
(
getData
());
}
@Override
public
void
dispose
(
JRDataSource
jrDataSource
)
throws
JRException
{
}
}
}
spring-webmvc/src/test/java/org/springframework/web/servlet/view/jasperreports/ConfigurableJasperReportsViewWithStreamTests.java
已删除
100644 → 0
浏览文件 @
f85be8eb
/*
* Copyright 2002-2012 the original author or authors.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package
org.springframework.web.servlet.view.jasperreports
;
import
net.sf.jasperreports.engine.export.JRHtmlExporter
;
/**
* @author Rob Harrop
*/
public
class
ConfigurableJasperReportsViewWithStreamTests
extends
AbstractConfigurableJasperReportsViewTests
{
@Override
protected
AbstractJasperReportsView
getViewImplementation
()
{
ConfigurableJasperReportsView
view
=
new
ConfigurableJasperReportsView
();
view
.
setExporterClass
(
JRHtmlExporter
.
class
);
view
.
setUseWriter
(
true
);
view
.
setContentType
(
"application/pdf"
);
return
view
;
}
@Override
protected
String
getDesiredContentType
()
{
return
"application/pdf"
;
}
}
spring-webmvc/src/test/java/org/springframework/web/servlet/view/jasperreports/ConfigurableJasperReportsViewWithWriterTests.java
已删除
100644 → 0
浏览文件 @
f85be8eb
/*
* Copyright 2002-2012 the original author or authors.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package
org.springframework.web.servlet.view.jasperreports
;
import
net.sf.jasperreports.engine.export.JRPdfExporter
;
/**
* @author Rob Harrop
*/
public
class
ConfigurableJasperReportsViewWithWriterTests
extends
AbstractConfigurableJasperReportsViewTests
{
@Override
protected
AbstractJasperReportsView
getViewImplementation
()
{
ConfigurableJasperReportsView
view
=
new
ConfigurableJasperReportsView
();
view
.
setExporterClass
(
JRPdfExporter
.
class
);
view
.
setUseWriter
(
false
);
view
.
setContentType
(
"text/html"
);
return
view
;
}
@Override
protected
String
getDesiredContentType
()
{
return
"text/html"
;
}
}
spring-webmvc/src/test/java/org/springframework/web/servlet/view/jasperreports/ExporterParameterTests.java
已删除
100755 → 0
浏览文件 @
f85be8eb
/*
* Copyright 2002-2012 the original author or authors.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package
org.springframework.web.servlet.view.jasperreports
;
import
java.util.HashMap
;
import
java.util.Iterator
;
import
java.util.Locale
;
import
java.util.Map
;
import
javax.servlet.http.HttpServletResponse
;
import
net.sf.jasperreports.engine.JRExporterParameter
;
import
net.sf.jasperreports.engine.JasperPrint
;
import
net.sf.jasperreports.engine.export.JRHtmlExporterParameter
;
import
org.springframework.mock.web.test.MockServletContext
;
import
org.springframework.web.context.support.StaticWebApplicationContext
;
import
org.springframework.web.servlet.DispatcherServlet
;
/**
* @author Rob Harrop
*/
public
class
ExporterParameterTests
extends
AbstractJasperReportsTests
{
public
void
testParameterParsing
()
throws
Exception
{
Map
params
=
new
HashMap
();
params
.
put
(
"net.sf.jasperreports.engine.export.JRHtmlExporterParameter.IMAGES_URI"
,
"/foo/bar"
);
AbstractJasperReportsView
view
=
new
AbstractJasperReportsView
()
{
@Override
protected
void
renderReport
(
JasperPrint
filledReport
,
Map
model
,
HttpServletResponse
response
)
throws
Exception
{
assertEquals
(
"Invalid number of exporter parameters"
,
1
,
getConvertedExporterParameters
().
size
());
JRExporterParameter
key
=
JRHtmlExporterParameter
.
IMAGES_URI
;
Object
value
=
getConvertedExporterParameters
().
get
(
key
);
assertNotNull
(
"Value not mapped to correct key"
,
value
);
assertEquals
(
"Incorrect value for parameter"
,
"/foo/bar"
,
value
);
}
/**
* Merges the configured {@link net.sf.jasperreports.engine.JRExporterParameter JRExporterParameters} with any specified
* in the supplied model data. {@link net.sf.jasperreports.engine.JRExporterParameter JRExporterParameters} in the model
* override those specified in the configuration.
* @see #setExporterParameters(java.util.Map)
*/
protected
Map
mergeExporterParameters
(
Map
model
)
{
Map
mergedParameters
=
new
HashMap
(
getConvertedExporterParameters
());
for
(
Iterator
iterator
=
model
.
keySet
().
iterator
();
iterator
.
hasNext
();)
{
Object
key
=
iterator
.
next
();
if
(
key
instanceof
JRExporterParameter
)
{
Object
value
=
model
.
get
(
key
);
if
(
value
instanceof
String
)
{
mergedParameters
.
put
(
key
,
value
);
}
else
{
logger
.
warn
(
"Ignoring exporter parameter ["
+
key
+
"]. Value is not a String."
);
}
}
}
return
mergedParameters
;
}
};
view
.
setExporterParameters
(
params
);
setViewProperties
(
view
);
view
.
render
(
getModel
(),
request
,
response
);
}
public
void
testInvalidClass
()
throws
Exception
{
Map
params
=
new
HashMap
();
params
.
put
(
"foo.net.sf.jasperreports.engine.export.JRHtmlExporterParameter.IMAGES_URI"
,
"/foo"
);
AbstractJasperReportsView
view
=
new
JasperReportsHtmlView
();
setViewProperties
(
view
);
try
{
view
.
setExporterParameters
(
params
);
view
.
convertExporterParameters
();
fail
(
"Should have thrown IllegalArgumentException"
);
}
catch
(
IllegalArgumentException
ex
)
{
// expected
}
}
public
void
testInvalidField
()
{
Map
params
=
new
HashMap
();
params
.
put
(
"net.sf.jasperreports.engine.export.JRHtmlExporterParameter.IMAGES_URI_FOO"
,
"/foo"
);
AbstractJasperReportsView
view
=
new
JasperReportsHtmlView
();
setViewProperties
(
view
);
try
{
view
.
setExporterParameters
(
params
);
view
.
convertExporterParameters
();
fail
(
"Should have thrown IllegalArgumentException"
);
}
catch
(
IllegalArgumentException
ex
)
{
// expected
}
}
public
void
testInvalidType
()
{
Map
params
=
new
HashMap
();
params
.
put
(
"java.lang.Boolean.TRUE"
,
"/foo"
);
AbstractJasperReportsView
view
=
new
JasperReportsHtmlView
();
setViewProperties
(
view
);
try
{
view
.
setExporterParameters
(
params
);
view
.
convertExporterParameters
();
fail
(
"Should have thrown IllegalArgumentException"
);
}
catch
(
IllegalArgumentException
ex
)
{
// expected
}
}
public
void
testTypeConversion
()
{
Map
params
=
new
HashMap
();
params
.
put
(
"net.sf.jasperreports.engine.export.JRHtmlExporterParameter.IS_USING_IMAGES_TO_ALIGN"
,
"true"
);
AbstractJasperReportsView
view
=
new
JasperReportsHtmlView
();
setViewProperties
(
view
);
view
.
setExporterParameters
(
params
);
view
.
convertExporterParameters
();
Object
value
=
view
.
getConvertedExporterParameters
().
get
(
JRHtmlExporterParameter
.
IS_USING_IMAGES_TO_ALIGN
);
assertEquals
(
Boolean
.
TRUE
,
value
);
}
private
void
setViewProperties
(
AbstractJasperReportsView
view
)
{
view
.
setUrl
(
"/org/springframework/ui/jasperreports/DataSourceReport.jasper"
);
StaticWebApplicationContext
ac
=
new
StaticWebApplicationContext
();
ac
.
setServletContext
(
new
MockServletContext
());
ac
.
addMessage
(
"page"
,
Locale
.
GERMAN
,
"MeineSeite"
);
ac
.
refresh
();
request
.
setAttribute
(
DispatcherServlet
.
WEB_APPLICATION_CONTEXT_ATTRIBUTE
,
ac
);
view
.
setApplicationContext
(
ac
);
}
}
spring-webmvc/src/test/java/org/springframework/web/servlet/view/jasperreports/JasperReportViewResolverTests.java
已删除
100644 → 0
浏览文件 @
f85be8eb
/*
* Copyright 2002-2005 the original author or authors.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package
org.springframework.web.servlet.view.jasperreports
;
import
java.util.Locale
;
import
junit.framework.TestCase
;
import
org.springframework.context.support.StaticApplicationContext
;
import
org.springframework.web.servlet.view.velocity.VelocityView
;
/**
* @author Rob Harrop
*/
public
class
JasperReportViewResolverTests
extends
TestCase
{
public
void
testResolveView
()
throws
Exception
{
StaticApplicationContext
ctx
=
new
StaticApplicationContext
();
String
prefix
=
"org/springframework/ui/jasperreports/"
;
String
suffix
=
".jasper"
;
String
viewName
=
"DataSourceReport"
;
JasperReportsViewResolver
viewResolver
=
new
JasperReportsViewResolver
();
viewResolver
.
setViewClass
(
JasperReportsHtmlView
.
class
);
viewResolver
.
setPrefix
(
prefix
);
viewResolver
.
setSuffix
(
suffix
);
viewResolver
.
setApplicationContext
(
ctx
);
AbstractJasperReportsView
view
=
(
AbstractJasperReportsView
)
viewResolver
.
resolveViewName
(
viewName
,
Locale
.
ENGLISH
);
assertNotNull
(
"View should not be null"
,
view
);
assertEquals
(
"Incorrect URL"
,
prefix
+
viewName
+
suffix
,
view
.
getUrl
());
}
public
void
testSetIncorrectViewClass
()
{
try
{
new
JasperReportsViewResolver
().
setViewClass
(
VelocityView
.
class
);
fail
(
"Should not be able to set view class to a class that does not extend AbstractJasperReportsView"
);
}
catch
(
IllegalArgumentException
ex
)
{
// success
}
}
public
void
testWithViewNamesAndEndsWithPattern
()
throws
Exception
{
doViewNamesTest
(
new
String
[]{
"DataSource*"
});
}
public
void
testWithViewNamesAndStartsWithPattern
()
throws
Exception
{
doViewNamesTest
(
new
String
[]{
"*Report"
});
}
public
void
testWithViewNamesAndStatic
()
throws
Exception
{
doViewNamesTest
(
new
String
[]{
"DataSourceReport"
});
}
private
void
doViewNamesTest
(
String
[]
viewNames
)
throws
Exception
{
StaticApplicationContext
ctx
=
new
StaticApplicationContext
();
String
prefix
=
"org/springframework/ui/jasperreports/"
;
String
suffix
=
".jasper"
;
String
viewName
=
"DataSourceReport"
;
JasperReportsViewResolver
viewResolver
=
new
JasperReportsViewResolver
();
viewResolver
.
setViewClass
(
JasperReportsHtmlView
.
class
);
viewResolver
.
setPrefix
(
prefix
);
viewResolver
.
setSuffix
(
suffix
);
viewResolver
.
setViewNames
(
viewNames
);
viewResolver
.
setApplicationContext
(
ctx
);
AbstractJasperReportsView
view
=
(
AbstractJasperReportsView
)
viewResolver
.
resolveViewName
(
viewName
,
Locale
.
ENGLISH
);
assertNotNull
(
"View should not be null"
,
view
);
assertEquals
(
"Incorrect URL"
,
prefix
+
viewName
+
suffix
,
view
.
getUrl
());
assertNull
(
viewResolver
.
resolveViewName
(
"foo"
,
Locale
.
ENGLISH
));
}
}
spring-webmvc/src/test/java/org/springframework/web/servlet/view/jasperreports/JasperReportsCsvViewTests.java
已删除
100644 → 0
浏览文件 @
f85be8eb
/*
* Copyright 2002-2012 the original author or authors.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package
org.springframework.web.servlet.view.jasperreports
;
/**
* @author Rob Harrop
*/
public
class
JasperReportsCsvViewTests
extends
AbstractJasperReportsViewTests
{
@Override
protected
AbstractJasperReportsView
getViewImplementation
()
{
return
new
JasperReportsCsvView
();
}
@Override
protected
String
getDesiredContentType
()
{
return
"text/csv"
;
}
}
spring-webmvc/src/test/java/org/springframework/web/servlet/view/jasperreports/JasperReportsHtmlViewTests.java
已删除
100644 → 0
浏览文件 @
f85be8eb
/*
* Copyright 2002-2012 the original author or authors.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package
org.springframework.web.servlet.view.jasperreports
;
import
net.sf.jasperreports.engine.export.JRHtmlExporterParameter
;
import
org.springframework.beans.factory.support.BeanDefinitionReader
;
import
org.springframework.beans.factory.support.PropertiesBeanDefinitionReader
;
import
org.springframework.core.io.ClassPathResource
;
import
org.springframework.mock.web.test.MockServletContext
;
import
org.springframework.web.context.support.GenericWebApplicationContext
;
import
org.springframework.web.servlet.DispatcherServlet
;
/**
* @author Rob Harrop
*/
public
class
JasperReportsHtmlViewTests
extends
AbstractJasperReportsViewTests
{
@Override
protected
AbstractJasperReportsView
getViewImplementation
()
{
return
new
JasperReportsHtmlView
();
}
@Override
protected
String
getDesiredContentType
()
{
return
"text/html"
;
}
public
void
testConfigureExporterParametersWithEncodingFromPropertiesFile
()
throws
Exception
{
GenericWebApplicationContext
ac
=
new
GenericWebApplicationContext
();
ac
.
setServletContext
(
new
MockServletContext
());
BeanDefinitionReader
reader
=
new
PropertiesBeanDefinitionReader
(
ac
);
reader
.
loadBeanDefinitions
(
new
ClassPathResource
(
"view.properties"
,
getClass
()));
ac
.
refresh
();
AbstractJasperReportsView
view
=
(
AbstractJasperReportsView
)
ac
.
getBean
(
"report"
);
String
encoding
=
(
String
)
view
.
getConvertedExporterParameters
().
get
(
JRHtmlExporterParameter
.
CHARACTER_ENCODING
);
assertEquals
(
"UTF-8"
,
encoding
);
request
.
setAttribute
(
DispatcherServlet
.
WEB_APPLICATION_CONTEXT_ATTRIBUTE
,
ac
);
view
.
render
(
getModel
(),
request
,
response
);
assertEquals
(
"Response content type is incorrect"
,
"text/html;charset=UTF-8"
,
response
.
getContentType
());
}
}
spring-webmvc/src/test/java/org/springframework/web/servlet/view/jasperreports/JasperReportsMultiFormatViewTests.java
已删除
100644 → 0
浏览文件 @
f85be8eb
/*
* Copyright 2002-2012 the original author or authors.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package
org.springframework.web.servlet.view.jasperreports
;
import
java.util.HashMap
;
import
java.util.Map
;
import
java.util.Properties
;
import
javax.servlet.http.HttpServletResponse
;
import
net.sf.jasperreports.engine.JasperPrint
;
/**
* @author Rob Harrop
* @author Juergen Hoeller
*/
public
class
JasperReportsMultiFormatViewTests
extends
AbstractJasperReportsViewTests
{
@Override
protected
void
extendModel
(
Map
<
String
,
Object
>
model
)
{
model
.
put
(
getDiscriminatorKey
(),
"csv"
);
}
public
void
testSimpleHtmlRender
()
throws
Exception
{
if
(!
canCompileReport
)
{
return
;
}
AbstractJasperReportsView
view
=
getView
(
UNCOMPILED_REPORT
);
Map
<
String
,
Object
>
model
=
getBaseModel
();
model
.
put
(
getDiscriminatorKey
(),
"html"
);
view
.
render
(
model
,
request
,
response
);
assertEquals
(
"Invalid content type"
,
"text/html"
,
response
.
getContentType
());
}
@Override
public
void
testOverrideContentDisposition
()
throws
Exception
{
if
(!
canCompileReport
)
{
return
;
}
AbstractJasperReportsView
view
=
getView
(
UNCOMPILED_REPORT
);
Map
<
String
,
Object
>
model
=
getBaseModel
();
model
.
put
(
getDiscriminatorKey
(),
"csv"
);
String
headerValue
=
"inline; filename=foo.txt"
;
Properties
mappings
=
new
Properties
();
mappings
.
put
(
"csv"
,
headerValue
);
((
JasperReportsMultiFormatView
)
view
).
setContentDispositionMappings
(
mappings
);
view
.
render
(
model
,
request
,
response
);
assertEquals
(
"Invalid Content-Disposition header value"
,
headerValue
,
response
.
getHeader
(
"Content-Disposition"
));
}
public
void
testExporterParametersAreCarriedAcross
()
throws
Exception
{
if
(!
canCompileReport
)
{
return
;
}
JasperReportsMultiFormatView
view
=
(
JasperReportsMultiFormatView
)
getView
(
UNCOMPILED_REPORT
);
Map
<
String
,
Class
<?
extends
AbstractJasperReportsView
>>
mappings
=
new
HashMap
<
String
,
Class
<?
extends
AbstractJasperReportsView
>>();
mappings
.
put
(
"test"
,
ExporterParameterTestView
.
class
);
Map
<
String
,
String
>
exporterParameters
=
new
HashMap
<
String
,
String
>();
// test view class performs the assertions - robh
exporterParameters
.
put
(
ExporterParameterTestView
.
TEST_PARAM
,
"foo"
);
view
.
setExporterParameters
(
exporterParameters
);
view
.
setFormatMappings
(
mappings
);
view
.
initApplicationContext
();
Map
<
String
,
Object
>
model
=
getBaseModel
();
model
.
put
(
getDiscriminatorKey
(),
"test"
);
view
.
render
(
model
,
request
,
response
);
}
protected
String
getDiscriminatorKey
()
{
return
"format"
;
}
@Override
protected
AbstractJasperReportsView
getViewImplementation
()
{
return
new
JasperReportsMultiFormatView
();
}
@Override
protected
String
getDesiredContentType
()
{
return
"text/csv"
;
}
private
Map
<
String
,
Object
>
getBaseModel
()
{
Map
<
String
,
Object
>
model
=
new
HashMap
<
String
,
Object
>();
model
.
put
(
"ReportTitle"
,
"Foo"
);
model
.
put
(
"dataSource"
,
getData
());
return
model
;
}
public
static
class
ExporterParameterTestView
extends
AbstractJasperReportsView
{
public
static
final
String
TEST_PARAM
=
"net.sf.jasperreports.engine.export.JRHtmlExporterParameter.IMAGES_URI"
;
@Override
protected
void
renderReport
(
JasperPrint
filledReport
,
Map
parameters
,
HttpServletResponse
response
)
{
assertNotNull
(
"Exporter parameters are null"
,
getExporterParameters
());
assertEquals
(
"Incorrect number of exporter parameters"
,
1
,
getExporterParameters
().
size
());
}
}
}
spring-webmvc/src/test/java/org/springframework/web/servlet/view/jasperreports/JasperReportsMultiFormatViewWithCustomMappingsTests.java
已删除
100644 → 0
浏览文件 @
f85be8eb
/*
* Copyright 2002-2012 the original author or authors.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package
org.springframework.web.servlet.view.jasperreports
;
import
java.util.HashMap
;
import
java.util.Map
;
/**
* @author Rob Harrop
* @author Juergen Hoeller
*/
public
class
JasperReportsMultiFormatViewWithCustomMappingsTests
extends
JasperReportsMultiFormatViewTests
{
@Override
protected
AbstractJasperReportsView
getViewImplementation
()
{
JasperReportsMultiFormatView
view
=
new
JasperReportsMultiFormatView
();
view
.
setFormatKey
(
"fmt"
);
Map
<
String
,
Class
<?
extends
AbstractJasperReportsView
>>
mappings
=
new
HashMap
<
String
,
Class
<?
extends
AbstractJasperReportsView
>>();
mappings
.
put
(
"csv"
,
JasperReportsCsvView
.
class
);
mappings
.
put
(
"comma-separated"
,
JasperReportsCsvView
.
class
);
mappings
.
put
(
"html"
,
JasperReportsHtmlView
.
class
);
view
.
setFormatMappings
(
mappings
);
return
view
;
}
@Override
protected
String
getDiscriminatorKey
()
{
return
"fmt"
;
}
@Override
protected
void
extendModel
(
Map
<
String
,
Object
>
model
)
{
model
.
put
(
getDiscriminatorKey
(),
"comma-separated"
);
}
}
spring-webmvc/src/test/java/org/springframework/web/servlet/view/jasperreports/JasperReportsPdfViewTests.java
已删除
100644 → 0
浏览文件 @
f85be8eb
/*
* Copyright 2002-2012 the original author or authors.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package
org.springframework.web.servlet.view.jasperreports
;
/**
* @author Rob Harrop
*/
public
class
JasperReportsPdfViewTests
extends
AbstractJasperReportsViewTests
{
@Override
protected
AbstractJasperReportsView
getViewImplementation
()
{
return
new
JasperReportsPdfView
();
}
@Override
protected
String
getDesiredContentType
()
{
return
"application/pdf"
;
}
}
spring-webmvc/src/test/java/org/springframework/web/servlet/view/jasperreports/JasperReportsXlsViewTests.java
已删除
100644 → 0
浏览文件 @
f85be8eb
/*
* Copyright 2002-2012 the original author or authors.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package
org.springframework.web.servlet.view.jasperreports
;
/**
* @author Rob Harrop
*/
public
class
JasperReportsXlsViewTests
extends
AbstractJasperReportsViewTests
{
@Override
protected
AbstractJasperReportsView
getViewImplementation
()
{
return
new
JasperReportsXlsView
();
}
@Override
protected
String
getDesiredContentType
()
{
return
"application/vnd.ms-excel"
;
}
}
spring-webmvc/src/test/java/org/springframework/web/servlet/view/jasperreports/view.properties
已删除
100644 → 0
浏览文件 @
f85be8eb
report.(class)=org.springframework.web.servlet.view.jasperreports.JasperReportsHtmlView
report.url
=
/org/springframework/ui/jasperreports/DataSourceReport.jasper
report.exporterParameters[net.sf.jasperreports.engine.export.JRHtmlExporterParameter.CHARACTER_ENCODING]=UTF-8
report.exporterParameters[net.sf.jasperreports.engine.JRExporterParameter.PAGE_INDEX]=0
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录