mirror of
https://github.com/alexmickelson/canvasManagement.git
synced 2026-03-26 15:48:32 -06:00
220 lines
5.7 KiB
C#
220 lines
5.7 KiB
C#
using System.Text;
|
|
using LocalModels;
|
|
|
|
public class QuizDeterministicChecks
|
|
{
|
|
|
|
[Fact]
|
|
public void SerializationIsDeterministic_EmptyQuiz()
|
|
{
|
|
var quiz = new LocalQuiz()
|
|
{
|
|
Name = "Test Quiz",
|
|
Description = "quiz description",
|
|
LockAt = new DateTime(2022, 10, 3, 12, 5, 0),
|
|
DueAt = new DateTime(2022, 10, 3, 12, 5, 0),
|
|
ShuffleAnswers = true,
|
|
OneQuestionAtATime = true,
|
|
LocalAssignmentGroupName = "Assignments"
|
|
};
|
|
var quizMarkdown = quiz.ToMarkdown();
|
|
|
|
var parsedQuiz = LocalQuiz.ParseMarkdown(quizMarkdown);
|
|
parsedQuiz.Should().BeEquivalentTo(quiz);
|
|
}
|
|
|
|
[Fact]
|
|
public void SerializationIsDeterministic_ShowCorrectAnswers()
|
|
{
|
|
var quiz = new LocalQuiz()
|
|
{
|
|
Name = "Test Quiz",
|
|
Description = "quiz description",
|
|
LockAt = new DateTime(2022, 10, 3, 12, 5, 0),
|
|
DueAt = new DateTime(2022, 10, 3, 12, 5, 0),
|
|
showCorrectAnswers = false,
|
|
ShuffleAnswers = true,
|
|
OneQuestionAtATime = true,
|
|
LocalAssignmentGroupName = "Assignments"
|
|
};
|
|
var quizMarkdown = quiz.ToMarkdown();
|
|
|
|
var parsedQuiz = LocalQuiz.ParseMarkdown(quizMarkdown);
|
|
parsedQuiz.Should().BeEquivalentTo(quiz);
|
|
}
|
|
|
|
[Fact]
|
|
public void SerializationIsDeterministic_ShortAnswer()
|
|
{
|
|
var quiz = new LocalQuiz()
|
|
{
|
|
Name = "Test Quiz",
|
|
Description = "quiz description",
|
|
LockAt = new DateTime(2022, 10, 3, 12, 5, 0),
|
|
DueAt = new DateTime(2022, 10, 3, 12, 5, 0),
|
|
ShuffleAnswers = true,
|
|
OneQuestionAtATime = true,
|
|
LocalAssignmentGroupName = "Assignments",
|
|
Questions = new LocalQuizQuestion[]
|
|
{
|
|
new ()
|
|
{
|
|
Text = "test short answer",
|
|
QuestionType = QuestionType.SHORT_ANSWER,
|
|
Points = 1
|
|
}
|
|
}
|
|
};
|
|
var quizMarkdown = quiz.ToMarkdown();
|
|
|
|
var parsedQuiz = LocalQuiz.ParseMarkdown(quizMarkdown);
|
|
parsedQuiz.Should().BeEquivalentTo(quiz);
|
|
}
|
|
|
|
[Fact]
|
|
public void SerializationIsDeterministic_Essay()
|
|
{
|
|
var quiz = new LocalQuiz()
|
|
{
|
|
Name = "Test Quiz",
|
|
Description = "quiz description",
|
|
LockAt = new DateTime(2022, 10, 3, 12, 5, 0),
|
|
DueAt = new DateTime(2022, 10, 3, 12, 5, 0),
|
|
ShuffleAnswers = true,
|
|
OneQuestionAtATime = true,
|
|
LocalAssignmentGroupName = "Assignments",
|
|
Questions = new LocalQuizQuestion[]
|
|
{
|
|
new ()
|
|
{
|
|
Text = "test essay",
|
|
QuestionType = QuestionType.ESSAY,
|
|
Points = 1
|
|
}
|
|
}
|
|
};
|
|
var quizMarkdown = quiz.ToMarkdown();
|
|
|
|
var parsedQuiz = LocalQuiz.ParseMarkdown(quizMarkdown);
|
|
parsedQuiz.Should().BeEquivalentTo(quiz);
|
|
}
|
|
|
|
[Fact]
|
|
public void SerializationIsDeterministic_MultipleAnswer()
|
|
{
|
|
var quiz = new LocalQuiz()
|
|
{
|
|
Name = "Test Quiz",
|
|
Description = "quiz description",
|
|
LockAt = new DateTime(2022, 10, 3, 12, 5, 0),
|
|
DueAt = new DateTime(2022, 10, 3, 12, 5, 0),
|
|
ShuffleAnswers = true,
|
|
OneQuestionAtATime = true,
|
|
LocalAssignmentGroupName = "Assignments",
|
|
Questions = new LocalQuizQuestion[]
|
|
{
|
|
new ()
|
|
{
|
|
Text = "test multiple answer",
|
|
QuestionType = QuestionType.MULTIPLE_ANSWERS,
|
|
Points = 1,
|
|
Answers = new LocalQuizQuestionAnswer[]
|
|
{
|
|
new() {
|
|
Correct = true,
|
|
Text="yes",
|
|
},
|
|
new() {
|
|
Correct = true,
|
|
Text="no",
|
|
}
|
|
}
|
|
}
|
|
}
|
|
};
|
|
var quizMarkdown = quiz.ToMarkdown();
|
|
|
|
var parsedQuiz = LocalQuiz.ParseMarkdown(quizMarkdown);
|
|
parsedQuiz.Should().BeEquivalentTo(quiz);
|
|
}
|
|
|
|
[Fact]
|
|
public void SerializationIsDeterministic_MultipleChoice()
|
|
{
|
|
var quiz = new LocalQuiz()
|
|
{
|
|
Name = "Test Quiz",
|
|
Description = "quiz description",
|
|
LockAt = new DateTime(2022, 10, 3, 12, 5, 0),
|
|
DueAt = new DateTime(2022, 10, 3, 12, 5, 0),
|
|
ShuffleAnswers = true,
|
|
OneQuestionAtATime = true,
|
|
LocalAssignmentGroupName = "Assignments",
|
|
Questions = new LocalQuizQuestion[]
|
|
{
|
|
new ()
|
|
{
|
|
Text = "test multiple choice",
|
|
QuestionType = QuestionType.MULTIPLE_CHOICE,
|
|
Points = 1,
|
|
Answers = new LocalQuizQuestionAnswer[]
|
|
{
|
|
new() {
|
|
Correct = true,
|
|
Text="yes",
|
|
},
|
|
new() {
|
|
Correct = false,
|
|
Text="no",
|
|
}
|
|
}
|
|
}
|
|
}
|
|
};
|
|
var quizMarkdown = quiz.ToMarkdown();
|
|
|
|
var parsedQuiz = LocalQuiz.ParseMarkdown(quizMarkdown);
|
|
parsedQuiz.Should().BeEquivalentTo(quiz);
|
|
}
|
|
[Fact]
|
|
public void SerializationIsDeterministic_Matching()
|
|
{
|
|
var quiz = new LocalQuiz()
|
|
{
|
|
Name = "Test Quiz",
|
|
Description = "quiz description",
|
|
LockAt = new DateTime(2022, 10, 3, 12, 5, 0),
|
|
DueAt = new DateTime(2022, 10, 3, 12, 5, 0),
|
|
ShuffleAnswers = true,
|
|
OneQuestionAtATime = true,
|
|
LocalAssignmentGroupName = "Assignments",
|
|
Questions = new LocalQuizQuestion[]
|
|
{
|
|
new ()
|
|
{
|
|
Text = "test matching",
|
|
QuestionType = QuestionType.MATCHING,
|
|
Points = 1,
|
|
Answers = new LocalQuizQuestionAnswer[]
|
|
{
|
|
new() {
|
|
Correct = true,
|
|
Text="yes",
|
|
MatchedText = "testing yes"
|
|
},
|
|
new() {
|
|
Correct = true,
|
|
Text="no",
|
|
MatchedText = "testing no"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
};
|
|
var quizMarkdown = quiz.ToMarkdown();
|
|
|
|
var parsedQuiz = LocalQuiz.ParseMarkdown(quizMarkdown);
|
|
parsedQuiz.Should().BeEquivalentTo(quiz);
|
|
}
|
|
}
|