Skip to content
GitLab
Explore
Sign in
Primary navigation
Search or go to…
Project
V
vorgang-manager
Manage
Activity
Members
Labels
Plan
Issues
Issue boards
Milestones
Wiki
Code
Merge requests
Repository
Branches
Commits
Tags
Repository graph
Compare revisions
Snippets
Build
Pipelines
Jobs
Pipeline schedules
Artifacts
Deploy
Releases
Package registry
Container registry
Model registry
Operate
Environments
Terraform modules
Monitor
Incidents
Analyze
Value stream analytics
Contributor analytics
CI/CD analytics
Repository analytics
Model experiments
Help
Help
Support
GitLab documentation
Compare GitLab plans
Community forum
Contribute to GitLab
Provide feedback
Terms and privacy
Keyboard shortcuts
?
Snippets
Groups
Projects
Show more breadcrumbs
OZG-Cloud
app
vorgang-manager
Commits
df08c16a
Commit
df08c16a
authored
7 months ago
by
OZGCloud
Browse files
Options
Downloads
Plain Diff
Merge branch 'refs/heads/master' into OZG-6162-ArchiveManager-an-Alfa-anbinden
parents
c600caa1
da3b1636
No related branches found
No related tags found
No related merge requests found
Changes
1
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
vorgang-manager-server/src/test/java/de/ozgcloud/vorgang/collaboration/CollaborationITCase.java
+100
-20
100 additions, 20 deletions
...e/ozgcloud/vorgang/collaboration/CollaborationITCase.java
with
100 additions
and
20 deletions
vorgang-manager-server/src/test/java/de/ozgcloud/vorgang/collaboration/CollaborationITCase.java
+
100
−
20
View file @
df08c16a
...
@@ -24,14 +24,21 @@
...
@@ -24,14 +24,21 @@
package
de.ozgcloud.vorgang.collaboration
;
package
de.ozgcloud.vorgang.collaboration
;
import
static
org
.
assertj
.
core
.
api
.
Assertions
.*;
import
static
org
.
assertj
.
core
.
api
.
Assertions
.*;
import
static
org
.
assertj
.
core
.
api
.
InstanceOfAssertFactories
.*;
import
static
org
.
awaitility
.
Awaitility
.*;
import
static
org
.
awaitility
.
Awaitility
.*;
import
static
org
.
junit
.
jupiter
.
api
.
Assertions
.
fail
;
import
static
org
.
mockito
.
ArgumentMatchers
.*;
import
static
org
.
mockito
.
Mockito
.*;
import
static
org
.
mockito
.
Mockito
.*;
import
java.io.ByteArrayOutputStream
;
import
java.io.IOException
;
import
java.util.List
;
import
java.util.List
;
import
java.util.Map
;
import
java.util.Map
;
import
java.util.concurrent.TimeUnit
;
import
java.util.concurrent.TimeUnit
;
import
org.bson.types.ObjectId
;
import
org.junit.jupiter.api.BeforeEach
;
import
org.junit.jupiter.api.BeforeEach
;
import
org.junit.jupiter.api.DisplayName
;
import
org.junit.jupiter.api.Nested
;
import
org.junit.jupiter.api.Nested
;
import
org.junit.jupiter.api.Test
;
import
org.junit.jupiter.api.Test
;
import
org.mockito.Mock
;
import
org.mockito.Mock
;
...
@@ -41,29 +48,41 @@ import org.springframework.boot.test.mock.mockito.MockBean;
...
@@ -41,29 +48,41 @@ import org.springframework.boot.test.mock.mockito.MockBean;
import
org.springframework.data.mongodb.core.MongoOperations
;
import
org.springframework.data.mongodb.core.MongoOperations
;
import
org.springframework.data.mongodb.core.query.Criteria
;
import
org.springframework.data.mongodb.core.query.Criteria
;
import
org.springframework.data.mongodb.core.query.Query
;
import
org.springframework.data.mongodb.core.query.Query
;
import
org.springframework.data.mongodb.gridfs.GridFsTemplate
;
import
org.springframework.test.annotation.DirtiesContext
;
import
org.springframework.test.annotation.DirtiesContext
;
import
com.google.protobuf.ByteString
;
import
de.ozgcloud.apilib.user.OzgCloudUserId
;
import
de.ozgcloud.apilib.user.OzgCloudUserId
;
import
de.ozgcloud.apilib.user.OzgCloudUserProfile
;
import
de.ozgcloud.apilib.user.OzgCloudUserProfile
;
import
de.ozgcloud.apilib.user.OzgCloudUserProfileService
;
import
de.ozgcloud.apilib.user.OzgCloudUserProfileService
;
import
de.ozgcloud.collaboration.CollaborationServiceGrpc.CollaborationServiceBlockingStub
;
import
de.ozgcloud.collaboration.GrpcGetFileContentRequest
;
import
de.ozgcloud.command.Command
;
import
de.ozgcloud.command.Command
;
import
de.ozgcloud.command.CommandStatus
;
import
de.ozgcloud.command.CommandStatus
;
import
de.ozgcloud.common.test.DataITCase
;
import
de.ozgcloud.common.test.DataITCase
;
import
de.ozgcloud.vorgang.attached_item.VorgangAttachedItem
;
import
de.ozgcloud.vorgang.attached_item.VorgangAttachedItem
;
import
de.ozgcloud.vorgang.callcontext.CallContext
;
import
de.ozgcloud.vorgang.callcontext.CallContext
;
import
de.ozgcloud.vorgang.callcontext.TestCallContextAttachingInterceptor
;
import
de.ozgcloud.vorgang.callcontext.WithMockCustomUser
;
import
de.ozgcloud.vorgang.callcontext.WithMockCustomUser
;
import
de.ozgcloud.vorgang.command.CommandService
;
import
de.ozgcloud.vorgang.command.CommandService
;
import
de.ozgcloud.vorgang.command.CommandTestFactory
;
import
de.ozgcloud.vorgang.command.CommandTestFactory
;
import
de.ozgcloud.vorgang.command.CreateCommandRequest
;
import
de.ozgcloud.vorgang.command.CreateCommandRequest
;
import
de.ozgcloud.vorgang.files.FileService
;
import
de.ozgcloud.vorgang.files.GridFsTestFactory
;
import
de.ozgcloud.vorgang.files.OzgFileTestFactory
;
import
de.ozgcloud.vorgang.vorgang.Vorgang
;
import
de.ozgcloud.vorgang.vorgang.Vorgang
;
import
de.ozgcloud.vorgang.vorgang.VorgangHead
;
import
de.ozgcloud.vorgang.vorgang.VorgangHead
;
import
de.ozgcloud.vorgang.vorgang.VorgangTestFactory
;
import
de.ozgcloud.vorgang.vorgang.VorgangTestFactory
;
import
de.ozgcloud.vorgang.vorgang.ZustaendigeStelleTestFactory
;
import
de.ozgcloud.vorgang.vorgang.ZustaendigeStelleTestFactory
;
import
net.devh.boot.grpc.client.inject.GrpcClient
;
@SpringBootTest
(
properties
=
{
@SpringBootTest
(
properties
=
{
"grpc.server.inProcessName=test"
,
"grpc.server.inProcessName=test"
,
"grpc.client.vorgang-manager.address=in-process:test"
,
"grpc.client.vorgang-manager.address=in-process:test"
,
"grpc.client.ozgcloud-command-manager.address=in-process:test"
,
"grpc.client.ozgcloud-command-manager.address=in-process:test"
,
"grpc.client.file-manager.address=in-process:test"
,
"grpc.client.inProcess.address=in-process:test"
})
})
@DataITCase
@DataITCase
@WithMockCustomUser
@WithMockCustomUser
...
@@ -78,32 +97,30 @@ class CollaborationITCase {
...
@@ -78,32 +97,30 @@ class CollaborationITCase {
@MockBean
@MockBean
private
OzgCloudUserProfileService
ozgCloudUserProfileService
;
private
OzgCloudUserProfileService
ozgCloudUserProfileService
;
@Mock
@Mock
private
OzgCloudUserProfile
ozgCloudUserProfile
;
private
OzgCloudUserProfile
ozgCloudUserProfile
;
@BeforeEach
void
init
()
{
mongoOperations
.
dropCollection
(
Command
.
class
);
mongoOperations
.
dropCollection
(
Vorgang
.
class
);
mongoOperations
.
dropCollection
(
VorgangAttachedItem
.
class
);
when
(
ozgCloudUserProfile
.
getId
()).
thenReturn
(
OzgCloudUserId
.
from
(
CommandTestFactory
.
CREATED_BY
));
when
(
ozgCloudUserProfileService
.
getById
(
any
())).
thenReturn
(
ozgCloudUserProfile
);
}
@Nested
@Nested
class
TestCreateCollaborationVorgang
{
class
TestCreateCollaborationVorgang
{
@BeforeEach
void
init
()
{
mongoOperations
.
dropCollection
(
Command
.
class
);
mongoOperations
.
dropCollection
(
Vorgang
.
class
);
mongoOperations
.
dropCollection
(
VorgangAttachedItem
.
class
);
when
(
ozgCloudUserProfile
.
getId
()).
thenReturn
(
OzgCloudUserId
.
from
(
CommandTestFactory
.
CREATED_BY
));
when
(
ozgCloudUserProfileService
.
getById
(
any
())).
thenReturn
(
ozgCloudUserProfile
);
vorgangId
=
mongoOperations
.
save
(
VorgangTestFactory
.
createBuilder
().
id
(
null
).
version
(
0L
).
build
()).
getId
();
}
private
static
final
String
FIELD_COLLABORATION_VORGANG_ID
=
"collaborationVorgangId"
;
private
static
final
String
FIELD_COLLABORATION_VORGANG_ID
=
"collaborationVorgangId"
;
private
static
final
String
TITEL
=
"Collaboration Vorgang"
;
private
static
final
String
TITEL
=
"Collaboration Vorgang"
;
private
static
final
String
ANFRAGE
=
"Anfrage"
;
private
static
final
String
ANFRAGE
=
"Anfrage"
;
private
String
vorgangId
;
private
String
vorgangId
;
@BeforeEach
void
init
()
{
vorgangId
=
mongoOperations
.
save
(
VorgangTestFactory
.
createBuilder
().
id
(
null
).
version
(
0L
).
build
()).
getId
();
}
@Test
@Test
void
shouldSetCollaborationVorgangId
()
{
void
shouldSetCollaborationVorgangId
()
{
var
command
=
commandService
.
createCommand
(
buildCreateCollaborationVorgangCommand
(
vorgangId
));
var
command
=
commandService
.
createCommand
(
buildCreateCollaborationVorgangCommand
(
vorgangId
));
...
@@ -138,16 +155,14 @@ class CollaborationITCase {
...
@@ -138,16 +155,14 @@ class CollaborationITCase {
.
bodyObject
(
Map
.
of
(
.
bodyObject
(
Map
.
of
(
"titel"
,
TITEL
,
"titel"
,
TITEL
,
"anfrage"
,
ANFRAGE
,
"anfrage"
,
ANFRAGE
,
"zustaendigeStelle"
,
ZustaendigeStelleTestFactory
.
ORGANISATIONSEINHEIT_ID
"zustaendigeStelle"
,
ZustaendigeStelleTestFactory
.
ORGANISATIONSEINHEIT_ID
))
))
.
build
();
.
build
();
}
}
private
void
waitUntilCommandFinished
(
String
commandId
)
{
private
void
waitUntilCommandFinished
(
String
commandId
)
{
await
().
atMost
(
60
,
TimeUnit
.
SECONDS
).
until
(
await
().
atMost
(
60
,
TimeUnit
.
SECONDS
).
until
(
()
->
mongoOperations
.
findById
(
commandId
,
Command
.
class
),
()
->
mongoOperations
.
findById
(
commandId
,
Command
.
class
),
command
->
command
.
getStatus
()
==
CommandStatus
.
FINISHED
command
->
command
.
getStatus
()
==
CommandStatus
.
FINISHED
);
);
}
}
private
Vorgang
loadCollaborationVorgang
(
String
sourceVorgangId
)
{
private
Vorgang
loadCollaborationVorgang
(
String
sourceVorgangId
)
{
...
@@ -158,10 +173,75 @@ class CollaborationITCase {
...
@@ -158,10 +173,75 @@ class CollaborationITCase {
private
List
<
VorgangAttachedItem
>
loadCollaborationRequest
(
String
vorgangId
)
{
private
List
<
VorgangAttachedItem
>
loadCollaborationRequest
(
String
vorgangId
)
{
var
query
=
new
Query
(
new
Criteria
().
andOperator
(
var
query
=
new
Query
(
new
Criteria
().
andOperator
(
Criteria
.
where
(
VorgangAttachedItem
.
FIELDNAME_VORGANG_ID
).
is
(
vorgangId
),
Criteria
.
where
(
VorgangAttachedItem
.
FIELDNAME_VORGANG_ID
).
is
(
vorgangId
),
Criteria
.
where
(
VorgangAttachedItem
.
FIELDNAME_ITEM_NAME
).
is
(
"CollaborationRequest"
)
Criteria
.
where
(
VorgangAttachedItem
.
FIELDNAME_ITEM_NAME
).
is
(
"CollaborationRequest"
)));
));
return
mongoOperations
.
find
(
query
,
VorgangAttachedItem
.
class
);
return
mongoOperations
.
find
(
query
,
VorgangAttachedItem
.
class
);
}
}
}
}
@DisplayName
(
"Get file content"
)
@Nested
class
TestGetFileContent
{
@GrpcClient
(
"inProcess"
)
private
CollaborationServiceBlockingStub
collaborationStub
;
@Autowired
private
GridFsTemplate
gridFsTemplate
;
@BeforeEach
void
initDatabase
()
{
gridFsTemplate
.
delete
(
new
Query
());
}
@Test
void
shouldReturnStoredSmallFile
()
{
var
fileId
=
gridFsTemplate
.
store
(
GridFsTestFactory
.
createUpload
());
var
file
=
downloadBinaryFile
(
fileId
);
assertThat
(
file
).
hasSameSizeAs
(
OzgFileTestFactory
.
CONTENT
).
isEqualTo
(
OzgFileTestFactory
.
CONTENT
);
}
@Test
void
shouldReturnStoredFileWithSizeEqualChunkSize
()
{
var
content
=
OzgFileTestFactory
.
createContentInByte
(
FileService
.
CHUNK_SIZE
);
var
fileId
=
gridFsTemplate
.
store
(
GridFsTestFactory
.
createUpload
(
content
));
var
file
=
downloadBinaryFile
(
fileId
);
assertThat
(
file
).
hasSameSizeAs
(
content
).
isEqualTo
(
content
);
}
@Test
void
shouldReturnStoredLargeFile
()
{
var
input
=
OzgFileTestFactory
.
createContentInMiB
(
5
);
var
fileId
=
gridFsTemplate
.
store
(
GridFsTestFactory
.
createUpload
(
input
));
var
downloadedFile
=
downloadBinaryFile
(
fileId
);
assertThat
(
downloadedFile
).
hasSameSizeAs
(
input
).
isEqualTo
(
input
);
}
private
byte
[]
downloadBinaryFile
(
ObjectId
fileId
)
{
var
request
=
GrpcGetFileContentRequest
.
newBuilder
()
.
setId
(
fileId
.
toHexString
()).
build
();
var
it
=
prepareBinaryFileServiceBlockingStub
().
getFileContent
(
request
);
var
content
=
new
ByteArrayOutputStream
();
while
(
it
.
hasNext
())
{
ByteString
chunkContent
=
it
.
next
().
getFileContent
();
try
{
content
.
write
(
chunkContent
.
toByteArray
());
}
catch
(
IOException
e
)
{
fail
(
e
);
}
}
return
content
.
toByteArray
();
}
private
CollaborationServiceBlockingStub
prepareBinaryFileServiceBlockingStub
()
{
return
collaborationStub
.
withInterceptors
(
new
TestCallContextAttachingInterceptor
());
}
}
}
}
\ No newline at end of file
This diff is collapsed.
Click to expand it.
Preview
0%
Loading
Try again
or
attach a new file
.
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Save comment
Cancel
Please
register
or
sign in
to comment