Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
S
solo-1
Project overview
Project overview
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
Administrator
solo-1
Commits
b5d4715e
Commit
b5d4715e
authored
Nov 01, 2016
by
sky
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
添加MetaWeblogAPITestCase
parent
bead500c
Changes
4
Hide whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
211 additions
and
15 deletions
+211
-15
pom.xml
pom.xml
+7
-2
src/main/resources/local.properties
src/main/resources/local.properties
+12
-12
src/test/java/org/b3log/solo/AbstractTestCase.java
src/test/java/org/b3log/solo/AbstractTestCase.java
+25
-1
src/test/java/org/b3log/solo/processor/MetaWeblogAPITestCase.java
.../java/org/b3log/solo/processor/MetaWeblogAPITestCase.java
+167
-0
No files found.
pom.xml
View file @
b5d4715e
...
...
@@ -230,6 +230,11 @@
<scope>
test
</scope>
</dependency>
<dependency>
<groupId>
org.apache.xmlrpc
</groupId>
<artifactId>
xmlrpc-client
</artifactId>
<version>
3.1.3
</version>
</dependency>
</dependencies>
<build>
...
...
@@ -266,8 +271,8 @@
<artifactId>
maven-compiler-plugin
</artifactId>
<version>
${maven-compiler-plugin.version}
</version>
<configuration>
<source>
1.
6
</source>
<target>
1.
6
</target>
<source>
1.
7
</source>
<target>
1.
7
</target>
<encoding>
UTF-8
</encoding>
</configuration>
</plugin>
...
...
src/main/resources/local.properties
View file @
b5d4715e
...
...
@@ -21,20 +21,20 @@
#
#### H2 runtime ####
runtimeDatabase
=
H2
jdbc.username
=
root
jdbc.password
=
jdbc.driver
=
org.h2.Driver
jdbc.URL
=
jdbc:h2:~/solo_h2/db
jdbc.pool
=
h2
#### MySQL runtime ####
#runtimeDatabase=MYSQL
#runtimeDatabase=H2
#jdbc.username=root
#jdbc.password=
#jdbc.driver=com.mysql.jdbc.Driver
#jdbc.URL=jdbc:mysql://localhost:3306/solo?useUnicode=yes&characterEncoding=utf8
#jdbc.pool=druid
#jdbc.driver=org.h2.Driver
#jdbc.URL=jdbc:h2:~/solo_h2/db
#jdbc.pool=h2
#### MySQL runtime ####
runtimeDatabase
=
MYSQL
jdbc.username
=
sky
jdbc.password
=
manage
jdbc.driver
=
com.mysql.jdbc.Driver
jdbc.URL
=
jdbc:mysql://localhost:3306/solo?useUnicode=yes&characterEncoding=utf8
jdbc.pool
=
druid
# The minConnCnt MUST larger or equal to 3
jdbc.minConnCnt
=
5
...
...
src/test/java/org/b3log/solo/AbstractTestCase.java
View file @
b5d4715e
...
...
@@ -18,12 +18,14 @@ package org.b3log.solo;
import
java.sql.Connection
;
import
java.util.Collection
;
import
java.util.Locale
;
import
org.b3log.latke.Latkes
;
import
org.b3log.latke.ioc.LatkeBeanManager
;
import
org.b3log.latke.ioc.Lifecycle
;
import
org.b3log.latke.ioc.config.Discoverer
;
import
org.b3log.latke.repository.jdbc.util.Connections
;
import
org.b3log.latke.repository.jdbc.util.JdbcRepositories
;
import
org.b3log.solo.api.metaweblog.MetaWeblogAPI
;
import
org.b3log.solo.repository.ArchiveDateArticleRepository
;
import
org.b3log.solo.repository.ArchiveDateRepository
;
import
org.b3log.solo.repository.ArticleRepository
;
...
...
@@ -48,7 +50,24 @@ import org.b3log.solo.repository.impl.StatisticRepositoryImpl;
import
org.b3log.solo.repository.impl.TagArticleRepositoryImpl
;
import
org.b3log.solo.repository.impl.TagRepositoryImpl
;
import
org.b3log.solo.repository.impl.UserRepositoryImpl
;
import
org.b3log.solo.service.*
;
import
org.b3log.solo.service.ArchiveDateQueryService
;
import
org.b3log.solo.service.ArticleMgmtService
;
import
org.b3log.solo.service.ArticleQueryService
;
import
org.b3log.solo.service.CommentMgmtService
;
import
org.b3log.solo.service.CommentQueryService
;
import
org.b3log.solo.service.InitService
;
import
org.b3log.solo.service.LinkMgmtService
;
import
org.b3log.solo.service.LinkQueryService
;
import
org.b3log.solo.service.OptionMgmtService
;
import
org.b3log.solo.service.OptionQueryService
;
import
org.b3log.solo.service.PageMgmtService
;
import
org.b3log.solo.service.PageQueryService
;
import
org.b3log.solo.service.PreferenceMgmtService
;
import
org.b3log.solo.service.PreferenceQueryService
;
import
org.b3log.solo.service.TagMgmtService
;
import
org.b3log.solo.service.TagQueryService
;
import
org.b3log.solo.service.UserMgmtService
;
import
org.b3log.solo.service.UserQueryService
;
import
org.testng.annotations.BeforeClass
;
/**
...
...
@@ -361,4 +380,9 @@ public abstract class AbstractTestCase {
public
OptionQueryService
getOptionQueryService
()
{
return
beanManager
.
getReference
(
OptionQueryService
.
class
);
}
public
MetaWeblogAPI
getMetaWeblogAPI
()
{
return
beanManager
.
getReference
(
MetaWeblogAPI
.
class
);
}
}
src/test/java/org/b3log/solo/processor/MetaWeblogAPITestCase.java
0 → 100644
View file @
b5d4715e
package
org
.
b3log
.
solo
.
processor
;
import
static
org
.
mockito
.
Mockito
.
mock
;
import
static
org
.
mockito
.
Mockito
.
when
;
import
java.io.ByteArrayInputStream
;
import
java.io.IOException
;
import
java.io.PrintWriter
;
import
java.io.StringWriter
;
import
javax.servlet.ReadListener
;
import
javax.servlet.ServletContext
;
import
javax.servlet.ServletInputStream
;
import
javax.servlet.http.HttpServletRequest
;
import
javax.servlet.http.HttpServletResponse
;
import
org.b3log.latke.model.User
;
import
org.b3log.solo.AbstractTestCase
;
import
org.b3log.solo.service.InitService
;
import
org.b3log.solo.service.UserQueryService
;
import
org.json.JSONObject
;
import
org.testng.Assert
;
import
org.testng.annotations.Test
;
/**
* {@link org.b3log.solo.api.metaweblog.MetaWeblogAPI} test case.
*
* @author yugt
*/
@Test
(
suiteName
=
"api"
)
public
class
MetaWeblogAPITestCase
extends
AbstractTestCase
{
/**
* Init.
*
* @throws Exception exception
*/
@Test
public
void
init
()
throws
Exception
{
final
InitService
initService
=
getInitService
();
final
JSONObject
requestJSONObject
=
new
JSONObject
();
requestJSONObject
.
put
(
User
.
USER_EMAIL
,
"test@gmail.com"
);
requestJSONObject
.
put
(
User
.
USER_NAME
,
"Admin"
);
requestJSONObject
.
put
(
User
.
USER_PASSWORD
,
"pass"
);
initService
.
init
(
requestJSONObject
);
final
UserQueryService
userQueryService
=
getUserQueryService
();
Assert
.
assertNotNull
(
userQueryService
.
getUserByEmail
(
"test@gmail.com"
));
}
/**
* 手动构造rpc请求
*
* @throws Exception exception
*/
@Test
(
dependsOnMethods
=
"init"
)
public
void
metaWeblog
()
throws
Exception
{
final
HttpServletRequest
request
=
mock
(
HttpServletRequest
.
class
);
when
(
request
.
getServletContext
()).
thenReturn
(
mock
(
ServletContext
.
class
));
when
(
request
.
getRequestURI
()).
thenReturn
(
"/apis/metaweblog"
);
when
(
request
.
getMethod
()).
thenReturn
(
"POST"
);
final
class
MockServletInputStream
extends
ServletInputStream
{
private
ByteArrayInputStream
stream
;
public
MockServletInputStream
(
byte
[]
data
)
{
stream
=
new
ByteArrayInputStream
(
data
);
}
public
int
read
()
throws
IOException
{
return
stream
.
read
();
}
@Override
public
boolean
isFinished
()
{
return
false
;
}
@Override
public
boolean
isReady
()
{
return
false
;
}
@Override
public
void
setReadListener
(
ReadListener
readListener
)
{
}
}
StringBuilder
sb
=
new
StringBuilder
();
sb
.
append
(
"<?xml version=\"1.0\" encoding=\"ISO-8859-1\"?>"
)
.
append
(
"<methodCall>"
)
.
append
(
"<methodName>metaWeblog.newPost</methodName>"
)
.
append
(
"<params>"
)
.
append
(
"<param>"
)
.
append
(
"<value><int>11</int></value>"
)
.
append
(
"</param>"
)
.
append
(
"<param>"
)
.
append
(
"<value><string>test@gmail.com</string></value>"
)
.
append
(
"</param>"
)
.
append
(
"<param>"
)
.
append
(
"<value><string>pass</string></value>"
)
.
append
(
"</param>"
)
.
append
(
"<param>"
)
.
append
(
"<value><struct> <member><name>dateCreated</name><value><dateTime.iso8601>2004-05-03T17:30:08</dateTime.iso8601></value></member> <member><name>title</name><value>title</value></member> <member><name>description</name><value>description</value> </member></struct></value>"
)
.
append
(
"</param>"
)
.
append
(
"</params>"
)
.
append
(
"</methodCall>"
);
when
(
request
.
getInputStream
()).
thenReturn
(
new
MockServletInputStream
(
sb
.
toString
().
getBytes
()));
final
MockDispatcherServlet
dispatcherServlet
=
new
MockDispatcherServlet
();
dispatcherServlet
.
init
();
final
StringWriter
stringWriter
=
new
StringWriter
();
final
PrintWriter
printWriter
=
new
PrintWriter
(
stringWriter
);
final
HttpServletResponse
response
=
mock
(
HttpServletResponse
.
class
);
when
(
response
.
getWriter
()).
thenReturn
(
printWriter
);
dispatcherServlet
.
service
(
request
,
response
);
final
String
content
=
stringWriter
.
toString
();
System
.
out
.
println
(
"xxxxxcontent:"
+
content
);
// Assert.assertTrue(StringUtils.startsWith(content, "{\"staticServePath\":\"http://localhost:8080\""));
}
/**
* 使用XmlRpcClient发送rpc请求
* @throws Exception exception
*/
// @Test(dependsOnMethods = "init")
// public void metaWeblog2() throws Exception {
// final MetaWeblogAPI metaWeblogAPI = getMetaWeblogAPI();
// metaWeblogAPI.metaWeblog(null,null,null);
//
// XmlRpcClientConfigImpl config = new XmlRpcClientConfigImpl();
// config.setServerURL(new URL("http://localhost:8080/solo/apis/metaweblog"));
// XmlRpcClient client = new XmlRpcClient();
// client.setConfig(config);
// Vector<Object> params= new Vector<Object>();
// params.add(1, 12);
// params.add(2, "gangtaoyu@gmail.com");
// params.add(3, "sky");
// params.add(4, new Struct());
// params.add(5, "publish");
// Integer result=(Integer)client.execute("metaWeblog.newPost",params);
//
// System.out.println(result);
//
//
// }
class
Struct
{
String
title
=
"title"
;
String
link
=
"link"
;
String
description
=
"description"
;
String
author
=
"author"
;
String
[]
category
={
"category1"
,
"category2"
};
String
comments
=
"comments"
;
String
enclosure
=
"enclosure"
;
String
guid
=
"guid"
;
String
pubDate
=
"pubDate"
;
String
source
=
"source"
;
}
}
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment