fix(eventstore): tests

This commit is contained in:
adlerhurst
2020-11-26 09:19:14 +01:00
parent 4bb9650f27
commit 246d4294cf
10 changed files with 97 additions and 65 deletions

View File

@@ -28,3 +28,12 @@ func (r *Repository) IDPConfigByID(ctx context.Context, idpConfigID string) (*ia
return readModelToIDPConfigView(idpConfig), nil
}
func (r *Repository) AddIDPConfig(ctx context.Context, config *iam_model.IDPConfig) (*iam_model.IDPConfig, error) {
iam, err := r.iamByID(ctx, config.AggregateID)
if err != nil {
return nil, err
}
return nil, nil
}

View File

@@ -0,0 +1,56 @@
package idp
import (
"github.com/caos/zitadel/internal/eventstore/v2"
"github.com/caos/zitadel/internal/v2/repository/idp/oidc"
)
type ConfigsReadModel struct {
eventstore.ReadModel
Configs []*ConfigReadModel
}
func (rm *ConfigsReadModel) AppendEvents(events ...eventstore.EventReader) {
rm.ReadModel.AppendEvents(events...)
for _, event := range events {
switch event.(type) {
case *oidc.ConfigAddedEvent:
rm.OIDCConfig = &oidc.ConfigReadModel{}
rm.OIDCConfig.AppendEvents(event)
case *oidc.ConfigChangedEvent:
rm.OIDCConfig.AppendEvents(event)
}
}
}
func (rm *ConfigsReadModel) Reduce() error {
for _, event := range rm.Events {
switch e := event.(type) {
case *ConfigAddedEvent:
rm.ConfigID = e.ConfigID
rm.Name = e.Name
rm.StylingType = e.StylingType
rm.State = ConfigStateActive
case *ConfigChangedEvent:
if e.Name != "" {
rm.Name = e.Name
}
if e.StylingType.Valid() {
rm.StylingType = e.StylingType
}
case *ConfigDeactivatedEvent:
rm.State = ConfigStateInactive
case *ConfigReactivatedEvent:
rm.State = ConfigStateActive
case *ConfigRemovedEvent:
rm.State = ConfigStateRemoved
case *oidc.ConfigAddedEvent:
rm.Type = ConfigTypeOIDC
}
}
if err := rm.OIDCConfig.Reduce(); err != nil {
return err
}
return rm.ReadModel.Reduce()
}

View File

@@ -14,8 +14,7 @@ type ReadModel struct {
//NewMemberReadModel is the default constructor of ReadModel
func NewMemberReadModel(userID string) *ReadModel {
return &ReadModel{
ReadModel: *eventstore.NewReadModel(),
UserID: userID,
UserID: userID,
}
}

View File

@@ -11,13 +11,6 @@ type ReadModel struct {
Members []*member.ReadModel
}
func NewMembersReadModel() *ReadModel {
return &ReadModel{
ReadModel: *eventstore.NewReadModel(),
Members: []*member.ReadModel{},
}
}
func (rm *ReadModel) MemberByUserID(id string) (idx int, member *member.ReadModel) {
for idx, member = range rm.Members {
if member.UserID == id {
@@ -31,12 +24,12 @@ func (rm *ReadModel) AppendEvents(events ...eventstore.EventReader) {
for _, event := range events {
switch e := event.(type) {
case *member.AddedEvent:
member := member.NewMemberReadModel(e.UserID)
rm.Members = append(rm.Members, member)
member.AppendEvents(e)
m := member.NewMemberReadModel(e.UserID)
rm.Members = append(rm.Members, m)
m.AppendEvents(e)
case *member.ChangedEvent:
_, member := rm.MemberByUserID(e.UserID)
member.AppendEvents(e)
_, m := rm.MemberByUserID(e.UserID)
m.AppendEvents(e)
case *member.RemovedEvent:
idx, _ := rm.MemberByUserID(e.UserID)
if idx < 0 {
@@ -50,8 +43,8 @@ func (rm *ReadModel) AppendEvents(events ...eventstore.EventReader) {
}
func (rm *ReadModel) Reduce() (err error) {
for _, member := range rm.Members {
err = member.Reduce()
for _, m := range rm.Members {
err = m.Reduce()
if err != nil {
return err
}