1
1
use eventsourcingdb_client_rust:: container:: Container ;
2
+ use futures:: StreamExt ;
2
3
use serde_json:: json;
3
4
4
5
#[ tokio:: test]
@@ -25,7 +26,6 @@ async fn register_event_schema() {
25
26
. expect ( "Failed to register event schema" ) ;
26
27
}
27
28
28
-
29
29
#[ tokio:: test]
30
30
async fn register_invalid_event_schema ( ) {
31
31
let container = Container :: start_default ( ) . await . unwrap ( ) ;
@@ -40,3 +40,81 @@ async fn register_invalid_event_schema() {
40
40
. await ;
41
41
assert ! ( res. is_err( ) , "Expected an error, but got: {:?}" , res) ;
42
42
}
43
+
44
+ #[ tokio:: test]
45
+ async fn list_all_subjects ( ) {
46
+ let container = Container :: start_default ( ) . await . unwrap ( ) ;
47
+ let client = container. get_client ( ) . await . unwrap ( ) ;
48
+ let res = client. list_subjects ( None ) . await ;
49
+ match res {
50
+ Ok ( subjects) => {
51
+ let subjects = subjects. collect :: < Vec < _ > > ( ) . await ;
52
+ assert ! (
53
+ subjects. is_empty( ) ,
54
+ "Expected no subjects, but got: {:?}" ,
55
+ subjects
56
+ ) ;
57
+ }
58
+ Err ( err) => panic ! ( "Failed to list subjects: {:?}" , err) ,
59
+ }
60
+ }
61
+
62
+ //TODO!: add list all subjects test after writing to db
63
+
64
+ //TODO!: add list scoped subjects test after writing to db
65
+
66
+ #[ tokio:: test]
67
+ async fn list_all_event_types ( ) {
68
+ let container = Container :: start_default ( ) . await . unwrap ( ) ;
69
+ let client = container. get_client ( ) . await . unwrap ( ) ;
70
+ let test_event_type = "io.eventsourcingdb.test" ;
71
+ let schema = json ! ( {
72
+ "type" : "object" ,
73
+ "properties" : {
74
+ "id" : {
75
+ "type" : "string"
76
+ } ,
77
+ "name" : {
78
+ "type" : "string"
79
+ }
80
+ } ,
81
+ "required" : [ "id" , "name" ]
82
+ } ) ;
83
+ client
84
+ . register_event_schema ( test_event_type, & schema)
85
+ . await
86
+ . expect ( "Failed to register event schema" ) ;
87
+ let res = client. list_event_types ( ) . await ;
88
+ match res {
89
+ Ok ( event_types) => {
90
+ let mut event_types = event_types. collect :: < Vec < _ > > ( ) . await ;
91
+ assert ! (
92
+ event_types. len( ) == 1 ,
93
+ "Expected one event types, but got: {:?}" ,
94
+ event_types
95
+ ) ;
96
+ assert ! ( event_types[ 0 ] . is_ok( ) , "Expected event type to be ok" ) ;
97
+ let response_event_type = event_types. pop ( ) . unwrap ( ) . unwrap ( ) ;
98
+ assert_eq ! (
99
+ response_event_type. name, test_event_type,
100
+ "Expected event type to be 'io.eventsourcingdb.test', but got: {:?}" ,
101
+ response_event_type. name
102
+ ) ;
103
+ assert_eq ! (
104
+ response_event_type. schema. as_ref( ) ,
105
+ Some ( & schema) ,
106
+ "Expected event type schema to be {:?}, but got: {:?}" ,
107
+ schema,
108
+ response_event_type. schema
109
+ ) ;
110
+ assert ! (
111
+ response_event_type. is_phantom,
112
+ "Expected event type is_phantom to be true, but got: {:?}" ,
113
+ response_event_type. is_phantom
114
+ ) ;
115
+ }
116
+ Err ( err) => panic ! ( "Failed to list event types: {:?}" , err) ,
117
+ }
118
+ }
119
+
120
+ // TODO!: add list event types test after writing to db
0 commit comments