public static IIdentificationResult FromDataTransferObject(identificationresult identificationResultDto)
        {
            var itemsChoiceType           = identificationResultDto.ItemsElementName?.FirstOrDefault();
            var identifiedByDigipostOrPin = itemsChoiceType == null;

            if (identifiedByDigipostOrPin)
            {
                return(IdentificationResultForDigipostOrPersonalIdentificationNumber(identificationResultDto));
            }

            return(new IdentificationResult(itemsChoiceType.Value.ToIdentificationResultType(), identificationResultDto.Items.ElementAt(0).ToString()));
        }
示例#2
0
            public void IdentificationByPinReturnsDigipostResultWithNoneResultType()
            {
                //Arrange
                var source = new identificationresult
                {
                    result = identificationresultcode.DIGIPOST,
                    Items  = new object[] { null }
                    //ItemsElementName = new [] { },

                    //IdentificationResultCode = IdentificationResultCode.Digipost,
                    //IdentificationValue = null,
                    //IdentificationResultType = IdentificationResultType.None
                };

                var expected = new IdentificationResult(IdentificationResultType.DigipostAddress, string.Empty);

                //Act
                var actual = DataTransferObjectConverter.FromDataTransferObject(source);

                //Assert
                Comparator.AssertEqual(expected, actual);
            }
示例#3
0
            public void IdentificationByAddressReturnsIdentifiedResultWithPersonalAliasResultType()
            {
                //Arrange
                const string personAlias = "fewoinf23nio3255n32oi5n32oi5n#1234";
                var          source      = new identificationresult
                {
                    result           = identificationresultcode.IDENTIFIED,
                    Items            = new object[] { personAlias },
                    ItemsElementName = new[] { ItemsChoiceType.personalias }

                    //IdentificationResultCode = IdentificationResultCode.Identified,
                    //IdentificationValue = personAlias,
                    //IdentificationResultType = IdentificationResultType.Personalias
                };

                var expected = new IdentificationResult(IdentificationResultType.Personalias, personAlias);

                //Act
                var actual = DataTransferObjectConverter.FromDataTransferObject(source);

                //Assert
                Comparator.AssertEqual(expected, actual);
            }
示例#4
0
            public void IdentificationByAddressReturnsDigipostResultWithDigipostAddressResultType()
            {
                //Arrange
                const string digipostAddress = "ola.nordmann#1234";
                var          source          = new identificationresult
                {
                    result           = identificationresultcode.DIGIPOST,
                    Items            = new object[] { digipostAddress },
                    ItemsElementName = new[] { ItemsChoiceType.digipostaddress }

                    //IdentificationResultCode = IdentificationResultCode.Digipost,
                    //IdentificationValue = digipostAddress,
                    //IdentificationResultType = IdentificationResultType.DigipostAddress
                };

                var expected = new IdentificationResult(IdentificationResultType.DigipostAddress, digipostAddress);

                //Act
                var actual = DataTransferObjectConverter.FromDataTransferObject(source);

                //Assert
                Comparator.AssertEqual(expected, actual);
            }
示例#5
0
            public void IdentificationByPinReturnsInvalidResultWithInvalidReason()
            {
                //Arrange
                object invalidValue = invalidreason.INVALID_PERSONAL_IDENTIFICATION_NUMBER;
                var    source       = new identificationresult
                {
                    result           = identificationresultcode.INVALID,
                    Items            = new[] { invalidValue },
                    ItemsElementName = new[] { ItemsChoiceType.invalidreason }

                    //IdentificationResultCode = IdentificationResultCode.Invalid,
                    //IdentificationValue = invalidValue,
                    //IdentificationResultType = IdentificationResultType.InvalidReason
                };

                var expected = new IdentificationResult(IdentificationResultType.InvalidReason, invalidValue.ToString());

                //Act
                var actual = DataTransferObjectConverter.FromDataTransferObject(source);

                //Assert
                Comparator.AssertEqual(expected, actual);
            }
示例#6
0
            public void IdentificationByOrganizationNumberReturnsUnidentifiedResultWithUnidentifiedReason()
            {
                //Arrange
                var reason = unidentifiedreason.NOT_FOUND;
                var source = new identificationresult
                {
                    result           = identificationresultcode.UNIDENTIFIED,
                    Items            = new object[] { reason },
                    ItemsElementName = new[] { ItemsChoiceType.unidentifiedreason }

                    //IdentificationResultCode = IdentificationResultCode.Unidentified,
                    //IdentificationValue = reason,
                    //IdentificationResultType = IdentificationResultType.UnidentifiedReason
                };

                var expected = new IdentificationResult(IdentificationResultType.UnidentifiedReason, reason.ToString());

                //Act
                var actual = DataTransferObjectConverter.FromDataTransferObject(source);

                //Assert
                Comparator.AssertEqual(expected, actual);
            }
        private static IdentificationResult IdentificationResultForDigipostOrPersonalIdentificationNumber(identificationresult identificationResultDto)
        {
            IdentificationResult identificationResult;

            switch (identificationResultDto.result)
            {
            case identificationresultcode.DIGIPOST:
                identificationResult = new IdentificationResult(IdentificationResultType.DigipostAddress);
                break;

            case identificationresultcode.IDENTIFIED:
                identificationResult = new IdentificationResult(IdentificationResultType.Personalias);
                break;

            default:
                throw new ArgumentOutOfRangeException();
            }
            return(identificationResult);
        }