Beispiel #1
0
        public async Task CanGetPatient()
        {
            //Arrange
            var          dbContext     = GetDbContext(nameof(CanAddPatient));
            var          patientId     = Guid.NewGuid();
            const string patientName   = "Jon Snow";
            const string patientAge    = "24";
            var          patientEntity = new EavEntity {
                Id              = patientId,
                EntityType      = EntityType.Patient,
                AttributeValues = new List <AttributeValueEntity> {
                    new AttributeValueEntity {
                        Id            = Guid.NewGuid(),
                        AttributeType = AttributeType.PatientName,
                        Value         = patientName
                    },
                    new AttributeValueEntity {
                        Id            = Guid.NewGuid(),
                        AttributeType = AttributeType.PatientAge,
                        Value         = patientAge
                    }
                }
            };

            var          operationId     = Guid.NewGuid();
            const string operationName   = "Lymphadenectomy";
            var          operationEntity = new EavEntity {
                Id              = operationId,
                EntityType      = EntityType.Operation,
                AttributeValues = new List <AttributeValueEntity> {
                    new AttributeValueEntity {
                        Id            = Guid.NewGuid(),
                        AttributeType = AttributeType.OperationName,
                        Value         = operationName
                    },
                    new AttributeValueEntity {
                        Id            = Guid.NewGuid(),
                        AttributeType = AttributeType.PatientId,
                        Value         = patientId.ToString()
                    }
                }
            };

            dbContext.Entities.AddRange(patientEntity, operationEntity);
            await dbContext.SaveChangesAsync();

            var sut = new ClinicService(dbContext);

            //Action
            var patient = await sut.GetPatientAsync(patientId, default);

            //Assert
            patient.Should().NotBeNull();
            patient.Name.Should().Be(patientName);
            patient.Age.Should().Be(ushort.Parse(patientAge));

            patient.Operations.Should().NotBeNullOrEmpty();
            var operation = patient.Operations.Single();

            operation.Should().NotBeNull();
            operation.OperationId.Should().Be(operationId);
            operation.OperationName.Should().Be(operationName);
        }