public async void GetAcademyById_OkResult_Empty_ReturnsCorrectResult()
        {
            //Arrange
            var academyId = Guid.Parse("a16e9020-9123-4420-8055-851d1b672fb1");

            var returnedEntities = new GetAcademiesD365Model {
                Id = academyId
            };

            var json = JsonConvert.SerializeObject(returnedEntities);
            HttpResponseMessage httpResponse = new HttpResponseMessage
            {
                StatusCode = HttpStatusCode.OK,
                Content    = new StringContent(json, Encoding.UTF8, "application/json")
            };

            _mockClient.Setup(m => m.GetAsync(It.IsAny <string>())).ReturnsAsync(httpResponse);

            _mockUrlBuilder.Setup(m => m.BuildRetrieveOneUrl("accounts", It.IsAny <Guid>()))
            .Returns("/accounts(a16e9020-9123-4420-8055-851d1b672fb1)");

            //Execute
            var result = await _subject.GetAcademyById(academyId);

            //Assert
            _mockUrlBuilder.Verify(m => m.BuildRetrieveOneUrl("accounts", academyId), Times.Once);
            _mockClient.Verify(m => m.GetAsync("/accounts(a16e9020-9123-4420-8055-851d1b672fb1)"), Times.Once);

            Assert.True(result.IsValid);
            Assert.Null(result.Result);
        }
        public async void GetAcademyById_Ok_ParentIdSet_ReturnsCorrectResult()
        {
            var academyId = Guid.Parse("a16e9020-9123-4420-8055-851d1b672fb1");
            var trustId   = Guid.Parse("b16e9020-9123-4420-8055-851d1b672fb1");

            //Arrange
            var returnedEntity = new GetAcademiesD365Model
            {
                AcademyName   = "Some Academy",
                Id            = academyId,
                Urn           = "URN",
                ParentTrustId = trustId
            };

            var mappedEntity = new GetAcademiesModel
            {
                AcademyName   = "Some Academy",
                Id            = academyId,
                Urn           = "URN",
                ParentTrustId = trustId
            };

            var json = JsonConvert.SerializeObject(returnedEntity);
            HttpResponseMessage httpResponse = new HttpResponseMessage
            {
                StatusCode = HttpStatusCode.OK,
                Content    = new StringContent(json, Encoding.UTF8, "application/json")
            };

            _mockClient.Setup(m => m.GetAsync(It.IsAny <string>())).ReturnsAsync(httpResponse);

            _mockUrlBuilder.Setup(m => m.BuildRetrieveOneUrl("accounts", It.IsAny <Guid>()))
            .Returns("/accounts(a16e9020-9123-4420-8055-851d1b672fb1)");

            _365AcademiesMapper.Setup(m => m.Map(It.Is <GetAcademiesD365Model>(o => o.Id == returnedEntity.Id)))
            .Returns(mappedEntity);

            var result = await _subject.GetAcademyById(academyId);

            //Assert
            _mockUrlBuilder.Verify(m => m.BuildRetrieveOneUrl("accounts", academyId), Times.Once);
            _mockClient.Verify(m => m.GetAsync("/accounts(a16e9020-9123-4420-8055-851d1b672fb1)"), Times.Once);

            Assert.True(result.IsValid);
            Assert.NotNull(result.Result);
            Assert.Equal(academyId, result.Result.Id);
            Assert.Equal(trustId, result.Result.ParentTrustId);
            Assert.Equal("Some Academy", result.Result.AcademyName);
            Assert.Equal("URN", result.Result.Urn);
        }
コード例 #3
0
        public async void GetAcademyById_Ok_ParentIdSet_ReturnsCorrectResult()
        {
            var academyId = Guid.Parse("a16e9020-9123-4420-8055-851d1b672fb1");
            var trustId   = Guid.Parse("b16e9020-9123-4420-8055-851d1b672fb1");

            //Arrange
            var returnedEntity = new GetAcademiesD365Model
            {
                AcademyName   = "Some Academy",
                Id            = academyId,
                Urn           = "URN",
                ParentTrustId = trustId
            };

            var json = JsonConvert.SerializeObject(returnedEntity);
            HttpResponseMessage httpResponse = new HttpResponseMessage
            {
                StatusCode = HttpStatusCode.OK,
                Content    = new StringContent(json, Encoding.UTF8, "application/json")
            };
            var mockClient = new Mock <IAuthenticatedHttpClient>();

            mockClient.Setup(m => m.GetAsync(It.IsAny <string>())).ReturnsAsync(httpResponse);

            var mockedLogger = new Mock <ILogger <AcademiesRepository> >();

            var mockUrlBuilder = new Mock <IOdataUrlBuilder <GetAcademiesD365Model> >();

            mockUrlBuilder.Setup(m => m.BuildRetrieveOneUrl("accounts", It.IsAny <Guid>()))
            .Returns("/accounts(a16e9020-9123-4420-8055-851d1b672fb1)");

            var academiesRepository = new AcademiesRepository(mockClient.Object, mockUrlBuilder.Object, mockedLogger.Object);

            //Execute
            var result = await academiesRepository.GetAcademyById(academyId);

            //Assert
            mockUrlBuilder.Verify(m => m.BuildRetrieveOneUrl("accounts", academyId), Times.Once);
            mockClient.Verify(m => m.GetAsync("/accounts(a16e9020-9123-4420-8055-851d1b672fb1)"), Times.Once);

            Assert.True(result.IsValid);
            Assert.NotNull(result.Result);
            Assert.Equal(academyId, result.Result.Id);
            Assert.Equal(trustId, result.Result.ParentTrustId);
            Assert.Equal("Some Academy", result.Result.AcademyName);
            Assert.Equal("URN", result.Result.Urn);
        }
コード例 #4
0
        public void GetAcademiesD365ModelToGetAcademiesModelMapperTest()
        {
            var academiesD365Model = new GetAcademiesD365Model
            {
                Id                   = Guid.Parse("4EEAEE65-9A3E-E911-A828-000D3A385A1C"),
                ParentTrustId        = Guid.Parse("81014326-5D51-E911-A82E-000D3A385A17"),
                AcademyName          = "Academy Name",
                Address              = "Address 1",
                DioceseName          = "Dicoese Name",
                EstablishmentType    = "Academy Converter",
                LocalAuthorityName   = "Local Authority",
                LocalAuthorityNumber = "424242",
                OfstedInspectionDate = new DateTime(2020, 01, 01),
                OftstedRating        = "Good",
                Predecessor          = new GetAcademiesD365Model.PredecessorEstablishment {
                    Pfi = "No"
                },
                ReligiousCharacter = "Does not apply",
                ReligiousEthos     = "Ethos does not apply",
                StateCode          = 1,
                StatusCode         = 3,
                Urn = "4242"
            };

            var mapper = new GetAcademiesResponseMapper(new EstablishmentNameFormatter());

            var result = mapper.Map(academiesD365Model);

            Assert.NotNull(result);
            Assert.Equal(Guid.Parse("4EEAEE65-9A3E-E911-A828-000D3A385A1C"), result.Id);
            Assert.Equal(Guid.Parse("81014326-5D51-E911-A82E-000D3A385A17"), result.ParentTrustId);
            Assert.Equal("Academy Name", result.AcademyName);
            Assert.Equal("Address 1", result.Address);
            Assert.Equal("Dicoese Name", result.DioceseName);
            Assert.Equal("Academy Converter", result.EstablishmentType);
            Assert.Equal("Local Authority", result.LocalAuthorityName);
            Assert.Equal("424242", result.LocalAuthorityNumber);
            Assert.Equal(new DateTime(2020, 01, 01), result.OfstedInspectionDate);
            Assert.Equal("Good", result.OfstedRating);
            Assert.Equal("No", result.Pfi);
            Assert.Equal("Does not apply", result.ReligiousCharacter);
            Assert.Equal("Ethos does not apply", result.ReligiousEthos);
            Assert.Equal("4242", result.Urn);
        }