Fix unit tests

This commit is contained in:
Slendy 2024-05-13 19:30:56 -05:00
commit 2219373616
No known key found for this signature in database
GPG key ID: 7288D68361B91428
2 changed files with 24 additions and 51 deletions

View file

@ -76,7 +76,7 @@ public class ActivityEventHandlerTests
eventHandler.OnEntityInserted(database, comment);
Assert.NotNull(database.Activities.OfType<CommentActivityEntity>()
Assert.NotNull(database.Activities.ToList().OfType<CommentActivityEntity>()
.FirstOrDefault(a => a.Type == EventType.CommentOnLevel && a.CommentId == 1));
}
@ -105,7 +105,7 @@ public class ActivityEventHandlerTests
eventHandler.OnEntityInserted(database, comment);
Assert.NotNull(database.Activities.OfType<CommentActivityEntity>()
Assert.NotNull(database.Activities.ToList().OfType<CommentActivityEntity>()
.FirstOrDefault(a => a.Type == EventType.CommentOnUser && a.CommentId == 1));
}
@ -132,7 +132,7 @@ public class ActivityEventHandlerTests
eventHandler.OnEntityInserted(database, photo);
Assert.NotNull(database.Activities.OfType<PhotoActivityEntity>()
Assert.NotNull(database.Activities.ToList().OfType<PhotoActivityEntity>()
.FirstOrDefault(a => a.Type == EventType.UploadPhoto && a.PhotoId == 1));
}
@ -678,7 +678,7 @@ public class ActivityEventHandlerTests
eventHandler.OnEntityChanged(database, oldSlot, newSlot);
Assert.NotNull(database.Activities.OfType<LevelActivityEntity>()
Assert.NotNull(database.Activities.ToList().OfType<LevelActivityEntity>()
.FirstOrDefault(a => a.Type == EventType.MMPickLevel && a.SlotId == 1));
}
@ -713,7 +713,7 @@ public class ActivityEventHandlerTests
eventHandler.OnEntityChanged(database, oldSlot, newSlot);
Assert.NotNull(database.Activities.OfType<LevelActivityEntity>()
Assert.NotNull(database.Activities.ToList().OfType<LevelActivityEntity>()
.FirstOrDefault(a => a.Type == EventType.PublishLevel && a.SlotId == 1));
}
@ -750,8 +750,8 @@ public class ActivityEventHandlerTests
eventHandler.OnEntityChanged(database, oldComment, newComment);
Assert.NotNull(database.Activities.OfType<CommentActivityEntity>()
.FirstOrDefault(a => a.Type == EventType.DeleteLevelComment && a.CommentId == 1));
Assert.NotNull(database.Activities.ToList()
.FirstOrDefault(a => a.Type == EventType.DeleteLevelComment && ((CommentActivityEntity)a).CommentId == 1));
}
[Fact]

View file

@ -86,34 +86,27 @@ public class ActivityGroupingTests
},
];
//TODO: fix test
List<OuterActivityGroup> groups = activities.ToActivityDto().AsQueryable().ToActivityGroups().ToList().ToOuterActivityGroups();
Assert.NotNull(groups);
Assert.Single(groups);
OuterActivityGroup outerGroup = groups.First();
Assert.Equal(3, groups.Count);
Assert.Equal(ActivityGroupType.User, groups.ElementAt(0).Key.GroupType);
Assert.Equal(ActivityGroupType.User, groups.ElementAt(1).Key.GroupType);
Assert.Equal(ActivityGroupType.Level, groups.ElementAt(2).Key.GroupType);
Assert.Equal(ActivityGroupType.Level, outerGroup.Key.GroupType);
Assert.Equal(1, outerGroup.Key.TargetSlotId);
Assert.Equal(1, groups.ElementAt(0).Key.TargetUserId);
Assert.Equal(2, groups.ElementAt(1).Key.TargetUserId);
Assert.Equal(1, groups.ElementAt(2).Key.TargetSlotId);
IGrouping<InnerActivityGroup, ActivityDto>? firstGroup = outerGroup.Groups.First();
IGrouping<InnerActivityGroup, ActivityDto>? secondGroup = outerGroup.Groups.Last();
Assert.NotNull(secondGroup);
Assert.Equal(ActivityGroupType.User, secondGroup.Key.Type);
Assert.Equal(1, secondGroup.Key.TargetId); // user group should have the user id
Assert.Equal(1, secondGroup.ToList()[0].TargetSlotId); // events in user group should have t
Assert.Equal(1, secondGroup.ToList()[1].TargetSlotId);
Assert.NotNull(firstGroup);
Assert.Equal(ActivityGroupType.User, firstGroup.Key.Type);
Assert.Equal(2, firstGroup.Key.TargetId);
Assert.Equal(1, firstGroup.ToList()[0].TargetSlotId);
Assert.Single(groups.ElementAt(0).Groups);
Assert.Single(groups.ElementAt(1).Groups);
Assert.Equal(2, groups.ElementAt(2).Groups.Count);
}
[Fact]
public void ToOuterActivityGroups_ShouldCreateGroupPerObject_WhenGroupedBy_ActorThenObject()
{
List<ActivityEntity> activities = [
List<ActivityEntity> activities = [
new LevelActivityEntity
{
UserId = 1,
@ -181,11 +174,13 @@ public class ActivityGroupingTests
.ToActivityGroups(true)
.ToList()
.ToOuterActivityGroups(true);
//TODO: fix test
Assert.Multiple(() =>
{
Assert.NotNull(groups);
Assert.Equal(2, groups.Count);
Assert.Equal(1, groups.Count(g => g.Key.UserId == 1));
Assert.Equal(1, groups.Count(g => g.Key.UserId == 2));
OuterActivityGroup firstUserGroup = groups.FirstOrDefault(g => g.Key.UserId == 1);
OuterActivityGroup secondUserGroup = groups.FirstOrDefault(g => g.Key.UserId == 2);
Assert.NotNull(firstUserGroup.Groups);
@ -194,28 +189,8 @@ public class ActivityGroupingTests
Assert.Equal(ActivityGroupType.User, firstUserGroup.Key.GroupType);
Assert.Equal(ActivityGroupType.User, secondUserGroup.Key.GroupType);
Assert.Single(firstUserGroup.Groups);
Assert.Single(secondUserGroup.Groups);
Assert.Equal(2, firstUserGroup.Groups.ToList()[0].Count());
Assert.Single(secondUserGroup.Groups.ToList()[0]);
// Assert.Equal(ActivityGroupType.Level, outerGroup.Key.GroupType);
// Assert.Equal(1, outerGroup.Key.TargetSlotId);
//
// IGrouping<InnerActivityGroup, ActivityDto>? firstGroup = outerGroup.Groups.First();
// IGrouping<InnerActivityGroup, ActivityDto>? secondGroup = outerGroup.Groups.Last();
//
// Assert.NotNull(secondGroup);
// Assert.Equal(ActivityGroupType.User, secondGroup.Key.Type);
// Assert.Equal(1, secondGroup.Key.TargetId); // user group should have the user id
// Assert.Equal(1, secondGroup.ToList()[0].TargetSlotId); // events in user group should have t
// Assert.Equal(1, secondGroup.ToList()[1].TargetSlotId);
//
// Assert.NotNull(firstGroup);
// Assert.Equal(ActivityGroupType.User, firstGroup.Key.Type);
// Assert.Equal(2, firstGroup.Key.TargetId);
// Assert.Equal(1, firstGroup.ToList()[0].TargetSlotId);
Assert.True(firstUserGroup.Groups.All(g => g.Key.UserId == 1));
Assert.True(secondUserGroup.Groups.All(g => g.Key.UserId == 2));
});
}
@ -318,8 +293,6 @@ public class ActivityGroupingTests
});
await db.SaveChangesAsync();
var sql = db.Activities.ToActivityDto().ToQueryString();
List<ActivityDto> resultDto = await db.Activities.ToActivityDto(includeSlotCreator: true, includeTeamPick: true).ToListAsync();
Assert.Equal(2, resultDto.FirstOrDefault(a => a.Activity.Type == EventType.MMPickLevel)?.TargetTeamPickId);