Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
A
atlas
Project
Overview
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
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
dataplatform
atlas
Commits
750646e7
Commit
750646e7
authored
Apr 17, 2020
by
Madhan Neethiraj
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
ATLAS-3733: upgraded JanusGraph version to 0.5.1, and Tinkerpop to 3.4.6
parent
b866e48f
Hide whitespace changes
Inline
Side-by-side
Showing
5 changed files
with
140 additions
and
138 deletions
+140
-138
NativeJanusGraphQuery.java
...repository/graphdb/janus/query/NativeJanusGraphQuery.java
+2
-1
Solr6Index.java
...main/java/org/janusgraph/diskstorage/solr/Solr6Index.java
+10
-11
atlas-application.properties
intg/src/test/resources/atlas-application.properties
+0
-1
pom.xml
pom.xml
+2
-2
UserProfileServiceTest.java
.../atlas/repository/userprofile/UserProfileServiceTest.java
+126
-123
No files found.
graphdb/janus/src/main/java/org/apache/atlas/repository/graphdb/janus/query/NativeJanusGraphQuery.java
View file @
750646e7
...
@@ -39,6 +39,7 @@ import org.apache.atlas.repository.graphdb.janus.AtlasJanusGraphDatabase;
...
@@ -39,6 +39,7 @@ import org.apache.atlas.repository.graphdb.janus.AtlasJanusGraphDatabase;
import
org.apache.atlas.repository.graphdb.janus.AtlasJanusVertex
;
import
org.apache.atlas.repository.graphdb.janus.AtlasJanusVertex
;
import
org.apache.tinkerpop.gremlin.process.traversal.Compare
;
import
org.apache.tinkerpop.gremlin.process.traversal.Compare
;
import
org.apache.tinkerpop.gremlin.structure.Vertex
;
import
org.apache.tinkerpop.gremlin.structure.Vertex
;
import
org.janusgraph.graphdb.query.JanusGraphPredicateUtils
;
import
org.janusgraph.graphdb.query.graph.GraphCentricQueryBuilder
;
import
org.janusgraph.graphdb.query.graph.GraphCentricQueryBuilder
;
import
org.slf4j.Logger
;
import
org.slf4j.Logger
;
import
org.slf4j.LoggerFactory
;
import
org.slf4j.LoggerFactory
;
...
@@ -226,7 +227,7 @@ public class NativeJanusGraphQuery implements NativeTinkerpopGraphQuery<AtlasJan
...
@@ -226,7 +227,7 @@ public class NativeJanusGraphQuery implements NativeTinkerpopGraphQuery<AtlasJan
JanusGraphPredicate
pred
;
JanusGraphPredicate
pred
;
if
(
op
instanceof
ComparisionOperator
)
{
if
(
op
instanceof
ComparisionOperator
)
{
Compare
c
=
getGremlinPredicate
((
ComparisionOperator
)
op
);
Compare
c
=
getGremlinPredicate
((
ComparisionOperator
)
op
);
pred
=
JanusGraphPredicate
.
Converter
.
convert
(
c
);
pred
=
JanusGraphPredicate
Utils
.
convert
(
c
);
}
else
{
}
else
{
pred
=
getGremlinPredicate
((
MatchingOperator
)
op
);
pred
=
getGremlinPredicate
((
MatchingOperator
)
op
);
}
}
...
...
graphdb/janus/src/main/java/org/janusgraph/diskstorage/solr/Solr6Index.java
View file @
750646e7
...
@@ -56,7 +56,6 @@ import org.apache.http.HttpException;
...
@@ -56,7 +56,6 @@ import org.apache.http.HttpException;
import
org.apache.http.HttpRequest
;
import
org.apache.http.HttpRequest
;
import
org.apache.http.HttpRequestInterceptor
;
import
org.apache.http.HttpRequestInterceptor
;
import
org.apache.http.client.HttpClient
;
import
org.apache.http.client.HttpClient
;
import
org.apache.http.client.utils.HttpClientUtils
;
import
org.apache.http.entity.BufferedHttpEntity
;
import
org.apache.http.entity.BufferedHttpEntity
;
import
org.apache.http.impl.auth.KerberosScheme
;
import
org.apache.http.impl.auth.KerberosScheme
;
import
org.apache.http.protocol.HttpContext
;
import
org.apache.http.protocol.HttpContext
;
...
@@ -114,7 +113,7 @@ import org.janusgraph.diskstorage.indexing.RawQuery;
...
@@ -114,7 +113,7 @@ import org.janusgraph.diskstorage.indexing.RawQuery;
import
org.janusgraph.diskstorage.solr.transform.GeoToWktConverter
;
import
org.janusgraph.diskstorage.solr.transform.GeoToWktConverter
;
import
org.janusgraph.diskstorage.util.DefaultTransaction
;
import
org.janusgraph.diskstorage.util.DefaultTransaction
;
import
org.janusgraph.graphdb.configuration.PreInitializeConfigOptions
;
import
org.janusgraph.graphdb.configuration.PreInitializeConfigOptions
;
import
org.janusgraph.graphdb.database.serialize.AttributeUtil
;
import
org.janusgraph.graphdb.database.serialize.AttributeUtil
s
;
import
org.janusgraph.graphdb.internal.Order
;
import
org.janusgraph.graphdb.internal.Order
;
import
org.janusgraph.graphdb.query.JanusGraphPredicate
;
import
org.janusgraph.graphdb.query.JanusGraphPredicate
;
import
org.janusgraph.graphdb.query.condition.And
;
import
org.janusgraph.graphdb.query.condition.And
;
...
@@ -1009,8 +1008,8 @@ public class Solr6Index implements IndexProvider {
...
@@ -1009,8 +1008,8 @@ public class Solr6Index implements IndexProvider {
public
boolean
supports
(
KeyInformation
information
,
JanusGraphPredicate
predicate
)
{
public
boolean
supports
(
KeyInformation
information
,
JanusGraphPredicate
predicate
)
{
final
Class
<?>
dataType
=
information
.
getDataType
();
final
Class
<?>
dataType
=
information
.
getDataType
();
final
Mapping
mapping
=
Mapping
.
getMapping
(
information
);
final
Mapping
mapping
=
Mapping
.
getMapping
(
information
);
if
(
mapping
!=
Mapping
.
DEFAULT
&&
!
AttributeUtil
.
isString
(
dataType
)
&&
if
(
mapping
!=
Mapping
.
DEFAULT
&&
!
AttributeUtil
s
.
isString
(
dataType
)
&&
!(
mapping
==
Mapping
.
PREFIX_TREE
&&
AttributeUtil
.
isGeo
(
dataType
)))
return
false
;
!(
mapping
==
Mapping
.
PREFIX_TREE
&&
AttributeUtil
s
.
isGeo
(
dataType
)))
return
false
;
if
(
Number
.
class
.
isAssignableFrom
(
dataType
))
{
if
(
Number
.
class
.
isAssignableFrom
(
dataType
))
{
return
predicate
instanceof
Cmp
;
return
predicate
instanceof
Cmp
;
...
@@ -1021,7 +1020,7 @@ public class Solr6Index implements IndexProvider {
...
@@ -1021,7 +1020,7 @@ public class Solr6Index implements IndexProvider {
case
PREFIX_TREE:
case
PREFIX_TREE:
return
predicate
==
Geo
.
INTERSECT
||
predicate
==
Geo
.
WITHIN
||
predicate
==
Geo
.
CONTAINS
;
return
predicate
==
Geo
.
INTERSECT
||
predicate
==
Geo
.
WITHIN
||
predicate
==
Geo
.
CONTAINS
;
}
}
}
else
if
(
AttributeUtil
.
isString
(
dataType
))
{
}
else
if
(
AttributeUtil
s
.
isString
(
dataType
))
{
switch
(
mapping
)
{
switch
(
mapping
)
{
case
DEFAULT:
case
DEFAULT:
case
TEXT:
case
TEXT:
...
@@ -1049,9 +1048,9 @@ public class Solr6Index implements IndexProvider {
...
@@ -1049,9 +1048,9 @@ public class Solr6Index implements IndexProvider {
if
(
Number
.
class
.
isAssignableFrom
(
dataType
)
||
dataType
==
Date
.
class
||
dataType
==
Instant
.
class
if
(
Number
.
class
.
isAssignableFrom
(
dataType
)
||
dataType
==
Date
.
class
||
dataType
==
Instant
.
class
||
dataType
==
Boolean
.
class
||
dataType
==
UUID
.
class
)
{
||
dataType
==
Boolean
.
class
||
dataType
==
UUID
.
class
)
{
return
mapping
==
Mapping
.
DEFAULT
;
return
mapping
==
Mapping
.
DEFAULT
;
}
else
if
(
AttributeUtil
.
isString
(
dataType
))
{
}
else
if
(
AttributeUtil
s
.
isString
(
dataType
))
{
return
mapping
==
Mapping
.
DEFAULT
||
mapping
==
Mapping
.
TEXT
||
mapping
==
Mapping
.
STRING
;
return
mapping
==
Mapping
.
DEFAULT
||
mapping
==
Mapping
.
TEXT
||
mapping
==
Mapping
.
STRING
;
}
else
if
(
AttributeUtil
.
isGeo
(
dataType
))
{
}
else
if
(
AttributeUtil
s
.
isGeo
(
dataType
))
{
return
mapping
==
Mapping
.
DEFAULT
||
mapping
==
Mapping
.
PREFIX_TREE
;
return
mapping
==
Mapping
.
DEFAULT
||
mapping
==
Mapping
.
PREFIX_TREE
;
}
}
return
false
;
return
false
;
...
@@ -1066,17 +1065,17 @@ public class Solr6Index implements IndexProvider {
...
@@ -1066,17 +1065,17 @@ public class Solr6Index implements IndexProvider {
if
(
ParameterType
.
MAPPED_NAME
.
hasParameter
(
keyInfo
.
getParameters
()))
return
key
;
if
(
ParameterType
.
MAPPED_NAME
.
hasParameter
(
keyInfo
.
getParameters
()))
return
key
;
String
postfix
;
String
postfix
;
final
Class
dataType
=
keyInfo
.
getDataType
();
final
Class
dataType
=
keyInfo
.
getDataType
();
if
(
AttributeUtil
.
isString
(
dataType
))
{
if
(
AttributeUtil
s
.
isString
(
dataType
))
{
final
Mapping
map
=
getStringMapping
(
keyInfo
);
final
Mapping
map
=
getStringMapping
(
keyInfo
);
switch
(
map
)
{
switch
(
map
)
{
case
TEXT:
postfix
=
"_t"
;
break
;
case
TEXT:
postfix
=
"_t"
;
break
;
case
STRING:
postfix
=
"_s"
;
break
;
case
STRING:
postfix
=
"_s"
;
break
;
default
:
throw
new
IllegalArgumentException
(
"Unsupported string mapping: "
+
map
);
default
:
throw
new
IllegalArgumentException
(
"Unsupported string mapping: "
+
map
);
}
}
}
else
if
(
AttributeUtil
.
isWholeNumber
(
dataType
))
{
}
else
if
(
AttributeUtil
s
.
isWholeNumber
(
dataType
))
{
if
(
dataType
.
equals
(
Long
.
class
))
postfix
=
"_l"
;
if
(
dataType
.
equals
(
Long
.
class
))
postfix
=
"_l"
;
else
postfix
=
"_i"
;
else
postfix
=
"_i"
;
}
else
if
(
AttributeUtil
.
isDecimal
(
dataType
))
{
}
else
if
(
AttributeUtil
s
.
isDecimal
(
dataType
))
{
if
(
dataType
.
equals
(
Float
.
class
))
postfix
=
"_f"
;
if
(
dataType
.
equals
(
Float
.
class
))
postfix
=
"_f"
;
else
postfix
=
"_d"
;
else
postfix
=
"_d"
;
}
else
if
(
dataType
.
equals
(
BigInteger
.
class
))
{
}
else
if
(
dataType
.
equals
(
BigInteger
.
class
))
{
...
@@ -1124,7 +1123,7 @@ public class Solr6Index implements IndexProvider {
...
@@ -1124,7 +1123,7 @@ public class Solr6Index implements IndexProvider {
*/
*/
private
static
Mapping
getStringMapping
(
KeyInformation
information
)
{
private
static
Mapping
getStringMapping
(
KeyInformation
information
)
{
assert
AttributeUtil
.
isString
(
information
.
getDataType
());
assert
AttributeUtil
s
.
isString
(
information
.
getDataType
());
Mapping
map
=
Mapping
.
getMapping
(
information
);
Mapping
map
=
Mapping
.
getMapping
(
information
);
if
(
map
==
Mapping
.
DEFAULT
)
map
=
Mapping
.
TEXT
;
if
(
map
==
Mapping
.
DEFAULT
)
map
=
Mapping
.
TEXT
;
return
map
;
return
map
;
...
...
intg/src/test/resources/atlas-application.properties
View file @
750646e7
...
@@ -45,7 +45,6 @@ atlas.graphdb.backend=${graphdb.backend.impl}
...
@@ -45,7 +45,6 @@ atlas.graphdb.backend=${graphdb.backend.impl}
# Graph Storage
# Graph Storage
atlas.graph.storage.backend
=
${graph.storage.backend}
atlas.graph.storage.backend
=
${graph.storage.backend}
atlas.graph.storage.transactions
=
false
# Entity repository implementation
# Entity repository implementation
atlas.EntityAuditRepository.impl
=
${entity.repository.impl}
atlas.EntityAuditRepository.impl
=
${entity.repository.impl}
...
...
pom.xml
View file @
750646e7
...
@@ -656,8 +656,8 @@
...
@@ -656,8 +656,8 @@
<jersey.version>
1.19
</jersey.version>
<jersey.version>
1.19
</jersey.version>
<jsr.version>
1.1
</jsr.version>
<jsr.version>
1.1
</jsr.version>
<janus.version>
0.
4
.1
</janus.version>
<janus.version>
0.
5
.1
</janus.version>
<tinkerpop.version>
3.4.
4
</tinkerpop.version>
<tinkerpop.version>
3.4.
6
</tinkerpop.version>
<lucene-solr.version>
7.3.0
</lucene-solr.version>
<lucene-solr.version>
7.3.0
</lucene-solr.version>
<hadoop.version>
3.1.1
</hadoop.version>
<hadoop.version>
3.1.1
</hadoop.version>
...
...
repository/src/test/java/org/apache/atlas/repository/userprofile/UserProfileServiceTest.java
View file @
750646e7
...
@@ -54,7 +54,9 @@ import static org.testng.Assert.assertTrue;
...
@@ -54,7 +54,9 @@ import static org.testng.Assert.assertTrue;
public
class
UserProfileServiceTest
{
public
class
UserProfileServiceTest
{
private
UserProfileService
userProfileService
;
private
UserProfileService
userProfileService
;
private
AtlasTypeDefStore
typeDefStore
;
private
AtlasTypeDefStore
typeDefStore
;
private
int
max_searches
=
4
;
private
static
final
int
NUM_USERS
=
2
;
private
static
final
int
NUM_SEARCHES
=
4
;
@Inject
@Inject
public
void
UserProfileServiceTest
(
AtlasTypeRegistry
typeRegistry
,
public
void
UserProfileServiceTest
(
AtlasTypeRegistry
typeRegistry
,
...
@@ -78,142 +80,121 @@ public class UserProfileServiceTest {
...
@@ -78,142 +80,121 @@ public class UserProfileServiceTest {
@Test
@Test
public
void
filterInternalType
()
throws
AtlasBaseException
{
public
void
filterInternalType
()
throws
AtlasBaseException
{
SearchFilter
searchFilter
=
new
SearchFilter
();
SearchFilter
searchFilter
=
new
SearchFilter
();
FilterUtil
.
addParamsToHideInternalType
(
searchFilter
);
FilterUtil
.
addParamsToHideInternalType
(
searchFilter
);
AtlasTypesDef
filteredTypeDefs
=
typeDefStore
.
searchTypesDef
(
searchFilter
);
AtlasTypesDef
filteredTypeDefs
=
typeDefStore
.
searchTypesDef
(
searchFilter
);
assertNotNull
(
filteredTypeDefs
);
assertNotNull
(
filteredTypeDefs
);
Optional
<
AtlasEntityDef
>
anyInternal
=
filteredTypeDefs
.
getEntityDefs
().
stream
().
filter
(
e
->
e
.
getSuperTypes
().
contains
(
"__internal"
)).
findAny
();
Optional
<
AtlasEntityDef
>
anyInternal
=
filteredTypeDefs
.
getEntityDefs
().
stream
().
filter
(
e
->
e
.
getSuperTypes
().
contains
(
"__internal"
)).
findAny
();
assertFalse
(
anyInternal
.
isPresent
());
assertFalse
(
anyInternal
.
isPresent
());
}
}
@Test
@Test
(
dependsOnMethods
=
"filterInternalType"
)
public
void
createsNewProfile
()
throws
AtlasBaseException
{
public
void
createsNewProfile
()
throws
AtlasBaseException
{
int
i
=
0
;
for
(
int
i
=
0
;
i
<
NUM_USERS
;
i
++)
{
assertSaveLoadUserProfile
(
i
++);
AtlasUserProfile
expected
=
getAtlasUserProfile
(
i
);
assertSaveLoadUserProfile
(
i
);
AtlasUserProfile
actual
=
userProfileService
.
saveUserProfile
(
expected
);
assertNotNull
(
actual
);
assertEquals
(
expected
.
getName
(),
actual
.
getName
());
assertEquals
(
expected
.
getFullName
(),
actual
.
getFullName
());
assertNotNull
(
actual
.
getGuid
());
}
}
}
@Test
(
dependsOnMethods
=
{
"createsNewProfile"
,
"savesQueryForAnNonExistentUser"
},
expectedExceptions
=
AtlasBaseException
.
class
)
@Test
(
dependsOnMethods
=
"createsNewProfile"
)
public
void
atteptsToAddAlreadyExistingQueryForAnExistingUser
()
throws
AtlasBaseException
{
public
void
saveSearchesForUser
()
throws
AtlasBaseException
{
SearchParameters
expectedSearchParameter
=
getActualSearchParameters
();
String
userName
=
getIndexBasedUserName
(
0
);
SearchParameters
searchParameters
=
getActualSearchParameters
();
for
(
int
i
=
0
;
i
<
2
;
i
++)
{
for
(
int
i
=
0
;
i
<
NUM_SEARCHES
;
i
++)
{
String
userName
=
getIndexBasedUserName
(
i
);
userProfileService
.
addSavedSearch
(
getDefaultSavedSearch
(
userName
,
getIndexBasedQueryName
(
i
),
searchParameters
));
}
for
(
int
j
=
0
;
j
<
max_searches
;
j
++)
{
for
(
int
i
=
0
;
i
<
NUM_SEARCHES
;
i
++)
{
String
queryName
=
getIndexBasedQueryName
(
j
);
AtlasUserSavedSearch
savedSearch
=
userProfileService
.
getSavedSearch
(
userName
,
getIndexBasedQueryName
(
i
));
AtlasUserSavedSearch
expected
=
getDefaultSavedSearch
(
userName
,
queryName
,
expectedSearchParameter
);
AtlasUserSavedSearch
actual
=
userProfileService
.
addSavedSearch
(
expected
);
assertNotNull
(
actual
);
assertEquals
(
savedSearch
.
getName
(),
getIndexBasedQueryName
(
i
));
assertNotNull
(
actual
.
getGuid
());
assertEquals
(
savedSearch
.
getSearchParameters
(),
searchParameters
);
assertEquals
(
actual
.
getOwnerName
(),
expected
.
getOwnerName
());
assertEquals
(
actual
.
getName
(),
expected
.
getName
());
assertEquals
(
actual
.
getSearchType
(),
expected
.
getSearchType
());
assertEquals
(
actual
.
getSearchParameters
(),
expected
.
getSearchParameters
());
}
}
}
}
}
@Test
(
dependsOnMethods
=
{
"createsNewProfile"
,
"savesQueryForAnNonExistentUser"
,
"atteptsToAddAlreadyExistingQueryForAnExistingUser"
})
@Test
(
dependsOnMethods
=
"saveSearchesForUser"
,
expectedExceptions
=
AtlasBaseException
.
class
)
public
void
savesExistingQueryForAnExistingUser
()
throws
AtlasBaseException
{
public
void
attemptToAddExistingSearch
()
throws
AtlasBaseException
{
String
userName
=
getIndexBasedUserName
(
0
);
SearchParameters
expectedSearchParameter
=
getActualSearchParameters
();
SearchParameters
expectedSearchParameter
=
getActualSearchParameters
();
for
(
int
i
=
0
;
i
<
2
;
i
++)
{
for
(
int
j
=
0
;
j
<
NUM_SEARCHES
;
j
++)
{
String
userName
=
getIndexBasedUserName
(
i
);
String
queryName
=
getIndexBasedQueryName
(
j
);
AtlasUserSavedSearch
expected
=
getDefaultSavedSearch
(
userName
,
queryName
,
expectedSearchParameter
);
for
(
int
j
=
4
;
j
<
max_searches
+
6
;
j
++)
{
AtlasUserSavedSearch
actual
=
userProfileService
.
addSavedSearch
(
expected
);
String
queryName
=
getIndexBasedQueryName
(
j
);
AtlasUserSavedSearch
actual
=
userProfileService
.
addSavedSearch
(
getDefaultSavedSearch
(
userName
,
queryName
,
expectedSearchParameter
));
assertNotNull
(
actual
);
assertNotNull
(
actual
);
assertNotNull
(
actual
.
getGuid
());
assertEquals
(
actual
.
getOwnerName
(),
expected
.
getOwnerName
());
AtlasUserSavedSearch
savedSearch
=
userProfileService
.
getSavedSearch
(
userName
,
queryName
);
assertEquals
(
actual
.
getName
(),
expected
.
getName
());
assertNotNull
(
savedSearch
);
assertEquals
(
actual
.
getSearchType
(),
expected
.
getSearchType
());
assertEquals
(
savedSearch
.
getSearchParameters
(),
expectedSearchParameter
);
assertEquals
(
actual
.
getSearchParameters
(),
expected
.
getSearchParameters
());
}
}
}
}
}
private
SearchParameters
getActualSearchParameters
()
{
@Test
(
dependsOnMethods
=
"attemptToAddExistingSearch"
)
SearchParameters
sp
=
new
SearchParameters
();
public
void
verifySavedSearchesForUser
()
throws
AtlasBaseException
{
sp
.
setClassification
(
"test-classification"
);
String
userName
=
getIndexBasedUserName
(
0
);
sp
.
setQuery
(
"g.v().has('__guid').__guid.toList()"
);
List
<
AtlasUserSavedSearch
>
searches
=
userProfileService
.
getSavedSearches
(
userName
);
sp
.
setLimit
(
10
);
List
<
String
>
names
=
getIndexBasedQueryNamesList
();
sp
.
setTypeName
(
"some-type"
);
return
sp
;
}
@Test
(
dependsOnMethods
=
"createsNewProfile"
)
public
void
savesQueryForAnNonExistentUser
()
throws
AtlasBaseException
{
String
expectedUserName
=
getIndexBasedUserName
(
0
);
String
expectedQueryName
=
"testQuery"
;
SearchParameters
expectedSearchParam
=
getActualSearchParameters
();
AtlasUserSavedSearch
expectedSavedSearch
=
getDefaultSavedSearch
(
expectedUserName
,
expectedQueryName
,
expectedSearchParam
);
AtlasUserSavedSearch
actual
=
userProfileService
.
addSavedSearch
(
expectedSavedSearch
);
assertEquals
(
actual
.
getOwnerName
(),
expectedUserName
);
assertEquals
(
actual
.
getName
(),
expectedQueryName
);
}
private
AtlasUserSavedSearch
getDefaultSavedSearch
(
String
userName
,
String
queryName
,
SearchParameters
expectedSearchParam
)
{
for
(
int
i
=
0
;
i
<
names
.
size
();
i
++
)
{
return
new
AtlasUserSavedSearch
(
userName
,
queryName
,
assertTrue
(
names
.
contains
(
searches
.
get
(
i
).
getName
()),
searches
.
get
(
i
).
getName
()
+
" failed!"
);
BASIC
,
expectedSearchParam
);
}
}
}
@Test
(
dependsOnMethods
=
"createsNewProfile"
)
@Test
(
dependsOnMethods
=
"verifySavedSearchesForUser"
)
public
void
savesMultipleQueriesForUser
()
throws
AtlasBaseException
{
public
void
verifyQueryConversionFromJSON
()
throws
AtlasBaseException
{
final
String
userName
=
getIndexBasedUserName
(
0
);
List
<
AtlasUserSavedSearch
>
list
=
userProfileService
.
getSavedSearches
(
"first-0"
);
createUserWithSavedQueries
(
userName
);
}
private
void
createUserWithSavedQueries
(
String
userName
)
throws
AtlasBaseException
{
for
(
int
i
=
0
;
i
<
NUM_SEARCHES
;
i
++)
{
SearchParameters
actualSearchParameter
=
getActualSearchParameters
();
SearchParameters
sp
=
list
.
get
(
i
).
getSearchParameters
();
String
json
=
AtlasType
.
toJson
(
sp
);
saveQueries
(
userName
,
actualSearchParameter
);
assertEquals
(
AtlasType
.
toJson
(
getActualSearchParameters
()).
replace
(
"\n"
,
""
).
replace
(
" "
,
""
),
json
);
for
(
int
i
=
0
;
i
<
max_searches
;
i
++)
{
AtlasUserSavedSearch
savedSearch
=
userProfileService
.
getSavedSearch
(
userName
,
getIndexBasedQueryName
(
i
));
assertEquals
(
savedSearch
.
getName
(),
getIndexBasedQueryName
(
i
));
assertEquals
(
savedSearch
.
getSearchParameters
(),
actualSearchParameter
);
}
}
}
}
private
void
saveQueries
(
String
userName
,
SearchParameters
sp
)
throws
AtlasBaseException
{
@Test
(
dependsOnMethods
=
"verifyQueryConversionFromJSON"
)
for
(
int
i
=
0
;
i
<
max_searches
;
i
++)
{
public
void
addAdditionalSearchesForUser
()
throws
AtlasBaseException
{
userProfileService
.
addSavedSearch
(
getDefaultSavedSearch
(
userName
,
getIndexBasedQueryName
(
i
),
sp
));
SearchParameters
expectedSearchParameter
=
getActualSearchParameters
();
}
}
@Test
(
dependsOnMethods
=
{
"createsNewProfile"
,
"savesMultipleQueriesForUser"
})
for
(
int
i
=
0
;
i
<
NUM_USERS
;
i
++)
{
public
void
verifyQueryNameListForUser
()
throws
AtlasBaseException
{
String
userName
=
getIndexBasedUserName
(
i
);
final
String
userName
=
getIndexBasedUserName
(
0
);
List
<
AtlasUserSavedSearch
>
list
=
userProfileService
.
getSavedSearches
(
userName
);
for
(
int
j
=
0
;
j
<
6
;
j
++)
{
List
<
String
>
names
=
getIndexBasedQueryNamesList
();
String
queryName
=
getIndexBasedQueryName
(
NUM_SEARCHES
+
j
);
for
(
int
i
=
0
;
i
<
names
.
size
();
i
++)
{
AtlasUserSavedSearch
actual
=
userProfileService
.
addSavedSearch
(
getDefaultSavedSearch
(
userName
,
queryName
,
expectedSearchParameter
));
assertTrue
(
names
.
contains
(
list
.
get
(
i
).
getName
()),
list
.
get
(
i
).
getName
()
+
" failed!"
);
}
}
@Test
(
dependsOnMethods
=
{
"createsNewProfile"
,
"savesMultipleQueriesForUser"
})
assertNotNull
(
actual
);
public
void
verifyQueryConversionFromJSON
()
throws
AtlasBaseException
{
List
<
AtlasUserSavedSearch
>
list
=
userProfileService
.
getSavedSearches
(
"first-0"
);
for
(
int
i
=
0
;
i
<
max_searches
;
i
++)
{
AtlasUserSavedSearch
savedSearch
=
userProfileService
.
getSavedSearch
(
userName
,
queryName
);
SearchParameters
sp
=
list
.
get
(
i
).
getSearchParameters
();
String
json
=
AtlasType
.
toJson
(
sp
);
assertNotNull
(
savedSearch
);
assertEquals
(
AtlasType
.
toJson
(
getActualSearchParameters
()).
replace
(
"\n"
,
""
).
replace
(
" "
,
""
),
json
);
assertEquals
(
savedSearch
.
getSearchParameters
(),
expectedSearchParameter
);
}
}
}
}
}
@Test
(
dependsOnMethods
=
{
"createsNewProfile"
,
"savesMultipleQueriesForUser"
,
"verifyQueryConversionFromJSON
"
})
@Test
(
dependsOnMethods
=
{
"addAdditionalSearchesForUser
"
})
public
void
updateSearch
()
throws
AtlasBaseException
{
public
void
updateSearch
()
throws
AtlasBaseException
{
final
String
queryName
=
getIndexBasedQueryName
(
0
);
String
userName
=
getIndexBasedUserName
(
0
);
String
userName
=
getIndexBasedUserName
(
0
);
String
queryName
=
getIndexBasedQueryName
(
0
);
AtlasUserSavedSearch
expected
=
userProfileService
.
getSavedSearch
(
userName
,
queryName
);
AtlasUserSavedSearch
expected
=
userProfileService
.
getSavedSearch
(
userName
,
queryName
);
assertNotNull
(
expected
);
assertNotNull
(
expected
);
SearchParameters
sp
=
expected
.
getSearchParameters
();
SearchParameters
sp
=
expected
.
getSearchParameters
();
sp
.
setClassification
(
"new-classification"
);
sp
.
setClassification
(
"new-classification"
);
AtlasUserSavedSearch
actual
=
userProfileService
.
updateSavedSearch
(
expected
);
AtlasUserSavedSearch
actual
=
userProfileService
.
updateSavedSearch
(
expected
);
...
@@ -223,56 +204,62 @@ public class UserProfileServiceTest {
...
@@ -223,56 +204,62 @@ public class UserProfileServiceTest {
assertEquals
(
actual
.
getSearchParameters
().
getClassification
(),
expected
.
getSearchParameters
().
getClassification
());
assertEquals
(
actual
.
getSearchParameters
().
getClassification
(),
expected
.
getSearchParameters
().
getClassification
());
}
}
@Test
(
dependsOnMethods
=
{
"createsNewProfile"
,
"savesMultipleQueriesForUser"
,
"verifyQueryNameListForUser"
},
expectedExceptions
=
AtlasBaseException
.
class
)
@Test
(
dependsOnMethods
=
{
"updateSearch"
}
)
public
void
deleteUsingGuid
()
throws
AtlasBaseException
{
public
void
deleteUsingGuid
()
throws
AtlasBaseException
{
final
String
queryName
=
getIndexBasedQueryName
(
1
);
String
userName
=
getIndexBasedUserName
(
0
);
String
userName
=
getIndexBasedUserName
(
0
);
String
queryName
=
getIndexBasedQueryName
(
1
);
AtlasUserSavedSearch
expected
=
userProfileService
.
getSavedSearch
(
userName
,
queryName
);
AtlasUserSavedSearch
expected
=
userProfileService
.
getSavedSearch
(
userName
,
queryName
);
assertNotNull
(
expected
);
assertNotNull
(
expected
);
userProfileService
.
deleteSavedSearch
(
expected
.
getGuid
());
userProfileService
.
deleteSavedSearch
(
expected
.
getGuid
());
userProfileService
.
getSavedSearch
(
userName
,
queryName
);
try
{
userProfileService
.
getSavedSearch
(
userName
,
queryName
);
}
catch
(
AtlasBaseException
ex
)
{
assertEquals
(
ex
.
getAtlasErrorCode
().
name
(),
AtlasErrorCode
.
INSTANCE_BY_UNIQUE_ATTRIBUTE_NOT_FOUND
.
name
());
}
}
}
@Test
(
dependsOnMethods
=
{
"createsNewProfile"
,
"savesMultipleQueriesForUser"
,
"verifyQueryNameListForUser"
})
@Test
(
dependsOnMethods
=
{
"deleteUsingGuid"
})
public
void
deleteSavedQuery
()
throws
AtlasBaseException
{
public
void
deleteSavedQuery
()
throws
AtlasBaseException
{
final
String
userName
=
getIndexBasedUserName
(
0
);
String
userName
=
getIndexBasedUserName
(
0
);
AtlasUserProfile
expected
=
userProfileService
.
getUserProfile
(
userName
);
AtlasUserProfile
expected
=
userProfileService
.
getUserProfile
(
userName
);
assertNotNull
(
expected
);
assertNotNull
(
expected
);
int
new_max_searches
=
expected
.
getSavedSearches
().
size
();
int
searchCount
=
expected
.
getSavedSearches
().
size
();
String
queryNameToBeDeleted
=
getIndexBasedQueryName
(
max_searches
-
2
);
String
queryNameToBeDeleted
=
getIndexBasedQueryName
(
NUM_SEARCHES
-
2
);
userProfileService
.
deleteSearchBySearchName
(
userName
,
queryNameToBeDeleted
);
userProfileService
.
deleteSearchBySearchName
(
userName
,
queryNameToBeDeleted
);
List
<
AtlasUserSavedSearch
>
savedSearchList
=
userProfileService
.
getSavedSearches
(
userName
);
List
<
AtlasUserSavedSearch
>
savedSearchList
=
userProfileService
.
getSavedSearches
(
userName
);
assertEquals
(
savedSearchList
.
size
(),
new_max_searches
-
1
);
assertEquals
(
savedSearchList
.
size
(),
searchCount
-
1
);
}
}
@Test
(
dependsOnMethods
=
{
"createsNewProfile"
,
"savesMultipleQueriesForUser"
,
"verifyQueryNameListForUser"
})
@Test
(
dependsOnMethods
=
{
"deleteSavedQuery"
})
void
deleteUser
()
throws
AtlasBaseException
{
void
deleteUser
()
throws
AtlasBaseException
{
String
userName
=
getIndexBasedUserName
(
1
);
String
userName
=
getIndexBasedUserName
(
0
);
AtlasUserProfile
userProfile
=
userProfileService
.
getUserProfile
(
userName
);
if
(
userProfile
.
getSavedSearches
()
!=
null
)
{
for
(
AtlasUserSavedSearch
savedSearch
:
userProfile
.
getSavedSearches
())
{
userProfileService
.
deleteSavedSearch
(
savedSearch
.
getGuid
());
}
}
userProfileService
.
deleteUserProfile
(
userName
);
userProfileService
.
deleteUserProfile
(
userName
);
try
{
try
{
userProfileService
.
getUserProfile
(
userName
);
userProfileService
.
getUserProfile
(
userName
);
}
}
catch
(
AtlasBaseException
ex
)
{
catch
(
AtlasBaseException
ex
)
{
assertEquals
(
ex
.
getAtlasErrorCode
().
name
(),
AtlasErrorCode
.
INSTANCE_BY_UNIQUE_ATTRIBUTE_NOT_FOUND
.
name
());
assertEquals
(
ex
.
getAtlasErrorCode
().
name
(),
AtlasErrorCode
.
INSTANCE_BY_UNIQUE_ATTRIBUTE_NOT_FOUND
.
name
());
}
}
}
}
private
void
assertSaveLoadUserProfile
(
int
i
)
throws
AtlasBaseException
{
String
s
=
String
.
valueOf
(
i
);
AtlasUserProfile
expected
=
getAtlasUserProfile
(
i
);
AtlasUserProfile
actual
=
userProfileService
.
saveUserProfile
(
expected
);
assertNotNull
(
actual
);
assertEquals
(
expected
.
getName
(),
actual
.
getName
());
assertEquals
(
expected
.
getFullName
(),
actual
.
getFullName
());
assertNotNull
(
actual
.
getGuid
());
}
p
ublic
static
AtlasUserProfile
getAtlasUserProfile
(
Integer
s
)
{
p
rivate
static
AtlasUserProfile
getAtlasUserProfile
(
Integer
s
)
{
return
new
AtlasUserProfile
(
getIndexBasedUserName
(
s
),
String
.
format
(
"first-%s last-%s"
,
s
,
s
));
return
new
AtlasUserProfile
(
getIndexBasedUserName
(
s
),
String
.
format
(
"first-%s last-%s"
,
s
,
s
));
}
}
...
@@ -284,9 +271,25 @@ public class UserProfileServiceTest {
...
@@ -284,9 +271,25 @@ public class UserProfileServiceTest {
return
String
.
format
(
"testQuery-%s"
,
i
.
toString
());
return
String
.
format
(
"testQuery-%s"
,
i
.
toString
());
}
}
public
List
<
String
>
getIndexBasedQueryNamesList
()
{
private
SearchParameters
getActualSearchParameters
()
{
SearchParameters
sp
=
new
SearchParameters
();
sp
.
setClassification
(
"test-classification"
);
sp
.
setQuery
(
"g.v().has('__guid').__guid.toList()"
);
sp
.
setLimit
(
10
);
sp
.
setTypeName
(
"some-type"
);
return
sp
;
}
private
AtlasUserSavedSearch
getDefaultSavedSearch
(
String
userName
,
String
queryName
,
SearchParameters
expectedSearchParam
)
{
return
new
AtlasUserSavedSearch
(
userName
,
queryName
,
BASIC
,
expectedSearchParam
);
}
private
List
<
String
>
getIndexBasedQueryNamesList
()
{
List
<
String
>
list
=
new
ArrayList
<>();
List
<
String
>
list
=
new
ArrayList
<>();
for
(
int
i
=
0
;
i
<
max_searches
;
i
++)
{
for
(
int
i
=
0
;
i
<
NUM_SEARCHES
;
i
++)
{
list
.
add
(
getIndexBasedQueryName
(
i
));
list
.
add
(
getIndexBasedQueryName
(
i
));
}
}
...
...
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