public void GetDyntaxaRevisionReferenceRelationById_WhenDyntaxaRevisionReferenceRelationCreated_ThenCreatedRevisionReferenceRelationIsReturned()
        {
            // Arrange
            const int    revisionId        = 24;
            const string relatedObjectGUID = "urn:lsid:dyntaxa.se:Taxon:6010174";
            const string action            = "Add";
            const int    referenceId       = 252;
            WebDyntaxaRevisionReferenceRelation dyntaxaReferenceRelation = WebDyntaxaRevisionReferenceRelationTestFactory.Create(
                revisionId, relatedObjectGUID, action);

            dyntaxaReferenceRelation.ReferenceId = referenceId;

            // Act
            using (IWebServiceTransaction transaction = new WebServiceTransaction(GetRevisionClientInformation(), WebServiceProxy.TaxonService))
            {
                var newReferenceRelations = WebServiceProxy.DyntaxaInternalService.CreateDyntaxaRevisionReferenceRelation(
                    GetClientInformation(), dyntaxaReferenceRelation);

                WebDyntaxaRevisionReferenceRelation getReferenceRelations = WebServiceProxy.DyntaxaInternalService
                                                                            .GetDyntaxaRevisionReferenceRelationById(
                    GetClientInformation(), newReferenceRelations.Id);

                // Assert
                Assert.IsNotNull(getReferenceRelations);
                Assert.AreEqual(relatedObjectGUID, getReferenceRelations.RelatedObjectGUID);
                Assert.AreEqual(action, getReferenceRelations.Action);
                Assert.AreEqual(referenceId, getReferenceRelations.ReferenceId);
            }
        }
        public void GetDyntaxaRevisionReferenceRelation_WhenTwoReferenceRelationWithSameRelatedObjectGUIDExists_ThenTwoReferenceRelationIsReturned()
        {
            // Arrange
            const int    revisionId        = 24;
            const string relatedObjectGUID = "urn:lsid:dyntaxa.se:Taxon:6010174";
            const string rel1Action        = "Add";
            const string rel2Action        = "Delete";

            // Act
            using (IWebServiceTransaction transaction = new WebServiceTransaction(GetRevisionClientInformation(), WebServiceProxy.TaxonService))
            {
                WebServiceProxy.DyntaxaInternalService.CreateDyntaxaRevisionReferenceRelation(
                    GetClientInformation(),
                    WebDyntaxaRevisionReferenceRelationTestFactory.Create(revisionId, relatedObjectGUID, rel1Action));
                WebServiceProxy.DyntaxaInternalService.CreateDyntaxaRevisionReferenceRelation(
                    GetClientInformation(),
                    WebDyntaxaRevisionReferenceRelationTestFactory.Create(revisionId, relatedObjectGUID, rel2Action));

                var newReferenceRelations = WebServiceProxy.DyntaxaInternalService.GetDyntaxaRevisionReferenceRelation(
                    GetClientInformation(), revisionId, relatedObjectGUID);

                // Assert
                Assert.IsNotNull(newReferenceRelations);
                Assert.AreEqual(2, newReferenceRelations.Count);
                Assert.AreEqual(rel1Action, newReferenceRelations[0].Action);
                Assert.AreEqual(rel2Action, newReferenceRelations[1].Action);
            }
        }
        public void CreateDyntaxaRevisionReferenceRelation_WithValidData_ThenDyntaxaRevisionReferenceRelationIsCreated()
        {
            // Arrange
            const string relatedObjectGUID = "urn:lsid:dyntaxa.se:Taxon:6010174";
            const string action = "Add";
            const int    revisionId = 1;
            WebDyntaxaRevisionReferenceRelation dyntaxaReferenceRelation, newDyntaxaReferenceRelation;

            dyntaxaReferenceRelation = WebDyntaxaRevisionReferenceRelationTestFactory.Create(
                revisionId, relatedObjectGUID, action);

            // Act
            using (IWebServiceTransaction transaction = new WebServiceTransaction(GetRevisionClientInformation(), WebServiceProxy.TaxonService))
            {
                // Create test Dyntaxa revision reference relation.
                dyntaxaReferenceRelation.ReferenceId = 3342;
                newDyntaxaReferenceRelation          = WebServiceProxy.DyntaxaInternalService.CreateDyntaxaRevisionReferenceRelation(
                    GetClientInformation(),
                    dyntaxaReferenceRelation);

                // Assert
                Assert.IsNotNull(newDyntaxaReferenceRelation);
                Assert.AreNotEqual(dyntaxaReferenceRelation.Id, newDyntaxaReferenceRelation.Id);
                Assert.AreEqual(dyntaxaReferenceRelation.RelatedObjectGUID,
                                newDyntaxaReferenceRelation.RelatedObjectGUID);
                Assert.AreEqual(3342, newDyntaxaReferenceRelation.ReferenceId);
            }
        }
        public void GetAllDyntaxaRevisionReferenceRelations_WhenReferenceRelationExists_ThenReferenceRelationIsReturned()
        {
            //Arrange
            List <WebDyntaxaRevisionReferenceRelation> referenceRelations;
            const int    revisionId               = 24;
            const string relatedObjectGUID        = "urn:lsid:dyntaxa.se:Taxon:6010174";
            const string action                   = "Add";
            var          dyntaxaReferenceRelation = WebDyntaxaRevisionReferenceRelationTestFactory.Create(
                revisionId, relatedObjectGUID, action);

            // Act
            using (IWebServiceTransaction transaction = new WebServiceTransaction(GetRevisionClientInformation(), WebServiceProxy.TaxonService))
            {
                WebServiceProxy.DyntaxaInternalService.CreateDyntaxaRevisionReferenceRelation(GetClientInformation(), dyntaxaReferenceRelation);
                referenceRelations = WebServiceProxy.DyntaxaInternalService.GetAllDyntaxaRevisionReferenceRelations(
                    GetClientInformation(), revisionId);

                // Assert
                Assert.AreEqual(1, referenceRelations.Count);
            }
        }
        public void GetDyntaxaRevisionReferenceRelation_WhenWrongRevisionId_ThenEmptyListIsReturned()
        {
            // Arrange
            const int    revisionId               = 24;
            const int    wrongRevisionId          = 25;
            const string relatedObjectGUID        = "urn:lsid:dyntaxa.se:Taxon:6010174";
            const string action                   = "Add";
            var          dyntaxaReferenceRelation = WebDyntaxaRevisionReferenceRelationTestFactory.Create(
                revisionId, relatedObjectGUID, action);

            // Act
            using (IWebServiceTransaction transaction = new WebServiceTransaction(GetRevisionClientInformation(), WebServiceProxy.TaxonService))
            {
                WebServiceProxy.DyntaxaInternalService.CreateDyntaxaRevisionReferenceRelation(GetClientInformation(), dyntaxaReferenceRelation);
                var newReferenceRelations = WebServiceProxy.DyntaxaInternalService.GetDyntaxaRevisionReferenceRelation(
                    GetClientInformation(), wrongRevisionId, relatedObjectGUID);

                // Assert
                Assert.IsNotNull(newReferenceRelations);
                Assert.AreEqual(0, newReferenceRelations.Count);
            }
        }