public void Create_WithValidArguments_ReturnsSerializableTotalAssemblyResult()
        {
            // Setup
            var idGenerator = new IdentifierGenerator();

            const string assessmentProcessId           = "assessmentProcessId";
            var          serializableAssessmentProcess = new SerializableAssessmentProcess(assessmentProcessId, new SerializableAssessmentSection());

            var    random = new Random();
            var    probabilityAssemblyMethod   = random.NextEnumValue <SerializableAssemblyMethod>();
            var    assemblyGroupAssemblyMethod = random.NextEnumValue <SerializableAssemblyMethod>();
            var    assemblyGroup = random.NextEnumValue <SerializableAssessmentSectionAssemblyGroup>();
            double probability   = random.NextDouble();

            // Call
            SerializableTotalAssemblyResult serializableTotalAssembly =
                SerializableTotalAssemblyResultCreator.Create(idGenerator,
                                                              serializableAssessmentProcess,
                                                              probabilityAssemblyMethod,
                                                              assemblyGroupAssemblyMethod,
                                                              assemblyGroup,
                                                              probability);

            // Assert
            Assert.AreEqual("Vo.0", serializableTotalAssembly.Id);
            Assert.AreEqual(serializableAssessmentProcess.Id, serializableTotalAssembly.AssessmentProcessId);
            Assert.AreEqual(probabilityAssemblyMethod, serializableTotalAssembly.ProbabilityAssemblyMethod);
            Assert.AreEqual(assemblyGroupAssemblyMethod, serializableTotalAssembly.AssemblyGroupAssemblyMethod);
            Assert.AreEqual(assemblyGroup, serializableTotalAssembly.AssemblyGroup);
            Assert.AreEqual(probability, serializableTotalAssembly.Probability);
        }
        public void Create_IdGeneratorNull_ThrowsArgumentNullException()
        {
            // Setup
            var random = new Random();

            // Call
            void Call() => SerializableTotalAssemblyResultCreator.Create(null,
                                                                         new SerializableAssessmentProcess(),
                                                                         random.NextEnumValue <SerializableAssemblyMethod>(),
                                                                         random.NextEnumValue <SerializableAssemblyMethod>(),
                                                                         random.NextEnumValue <SerializableAssessmentSectionAssemblyGroup>(),
                                                                         random.NextDouble());

            // Assert
            var exception = Assert.Throws <ArgumentNullException>(Call);

            Assert.AreEqual("idGenerator", exception.ParamName);
        }