コード例 #1
0
        public void Output_Success_ApproveApiSurface()
        {
            // Arrange
            var output = new GetEventListOutput(
                new List <GetEventListOutput.EventRow>
            {
                new GetEventListOutput.EventRow(
                    new Guid("C76468FE-86AE-43EC-B2D5-28FC61DA04AA"),
                    new DateTime(2019, 10, 5, 19, 0, 0),
                    null,
                    "The Title",
                    "The Location",
                    "The MeetingPoint"
                    )
            });

            // Act
            presenter.Output(output);
            var jsonObject = presenter.GetJsonObject();

            // Assert
            var json = JsonConvert.SerializeObject(jsonObject);

            Approvals.VerifyJson(json);
        }
コード例 #2
0
        public void TryParseRevision_test(string testName, bool expectedReturn, bool serialThrows = false)
        {
            using (ApprovalResults.ForScenario(testName.Replace(' ', '_')))
            {
                string path = Path.Combine(TestContext.CurrentContext.TestDirectory, "TestData/RevisionReader", testName + ".bin");
                ArraySegment <byte> chunk = File.ReadAllBytes(path);

                RevisionReader.TestAccessor.TryParseRevision(chunk, _getEncodingByGitName, _logOutputEncoding, _sixMonths, out GitRevision rev)
                .Should().Be(expectedReturn);

                // No LocalTime for the time stamps
                JsonSerializerSettings timeZoneSettings = new()
                {
                    DateTimeZoneHandling = DateTimeZoneHandling.Utc
                };

                if (serialThrows)
                {
                    Action act = () => JsonConvert.SerializeObject(rev);
                    act.Should().Throw <JsonSerializationException>();
                }
                else if (expectedReturn)
                {
                    Approvals.VerifyJson(JsonConvert.SerializeObject(rev, timeZoneSettings));
                }
            }
        }
    }
コード例 #3
0
        public void Can_Apply(string scenario, string globalJson)
        {
            using (ApprovalResults.ForScenario(scenario))
            {
                // arrange

                var upgradeActions         = new List <ISolutionUpgradeAction>();
                var testFileUpgradeContext = new TestSolutionUpgradeContext(globalJson);

                // updates the sdk version in global json.
                var runtimeUpgradeAction = new UpdateSdkVersion("1.0.0-preview1-002702");
                upgradeActions.Add(runtimeUpgradeAction);

                // Apply these actions to the global.json file.
                foreach (var upgradeAction in upgradeActions)
                {
                    upgradeAction.Apply(testFileUpgradeContext);
                }

                // save the changes.
                testFileUpgradeContext.SaveChanges();

                // assert.
                var modifiedContents = testFileUpgradeContext.ModifiedJsonContents;
                Approvals.VerifyJson(modifiedContents);
            }
        }
コード例 #4
0
        public void Parses_Sets_Of_Rules()
        {
            var input = Resources.GetResourceLines(this, "day7.sample.txt");
            var rules = ParseRules(input);

            Approvals.VerifyJson(SerializeObject(rules));
        }
コード例 #5
0
        public async Task should_be_able_to_fetch_new_user_v2()
        {
            // Setup application
            var applicationFactory = new SampleApplicationFactory();
            await applicationFactory.Install();

            var apiClient = applicationFactory.CreateClient();


            // Create new users
            var createResponse = await apiClient.PostAsJsonAsync("/user/", new CreateUserDTO
            {
                FirstName = "John",
                LastName  = "Doe",
                Email     = "*****@*****.**"
            });

            var createResult = await createResponse.Content.ReadAsAsync <EntityCreatedResult>();

            // Fetch newly created user
            var getUserResponsePayload = await apiClient.GetStringAsync("/user/" + createResult.Id);

            // Verify the expectations
            Approvals.VerifyJson(getUserResponsePayload.WithIgnores("$.id"));
        }
コード例 #6
0
ファイル: ModelFacts.cs プロジェクト: Allann/OurPresence
        public static void Model_Serialization()
        {
            var sut = new Model("Test");

            sut.Fields.Add(new Field("Field1"));

            var idx = new Index("UX_Field1");

            idx.Fields.Add(new IndexField("Field1"));
            sut.Indexes.Add(idx);

            var rel = new Relationship()
            {
                PrincipalModel = new Name("Test"),
                PrincipalType  = RelationshipTypes.One,
                DependantModel = new Name("OtherModel"),
                DependantType  = RelationshipTypes.Many
            };

            rel.PrincipalFields.Add(new Name("Field1"));
            rel.DependantFields.Add(new Name("OtherField"));
            sut.Relationships.Add(rel);

            var json = sut.ToJson();

            Approvals.VerifyJson(json);

            var actual = json.FromJson <Model>();

            actual.Should().BeEquivalentTo(sut);
        }
コード例 #7
0
    public async Task Get_companies_paging()
    {
        await startTask;
        var   after = 1;
        var   query = @"
query {
  companiesConnection(first:2, after:""" + after + @""") {
    edges {
      cursor
      node {
        id
      }
    }
    pageInfo {
      endCursor
      hasNextPage
    }
  }
}";

        using var response = await ClientQueryExecutor.ExecuteGet(client, query);

        response.EnsureSuccessStatusCode();
        Approvals.VerifyJson(await response.Content.ReadAsStringAsync());
    }
コード例 #8
0
ファイル: RcmsTests.cs プロジェクト: Allann/OurPresence
        public void GivenAProject_WhenSerialised_ReturnsJsonModel()
        {
            var module = RcmsModuleBuilders.CreateProject();

            var json = module.ToJson();

            Approvals.VerifyJson(json);
        }
コード例 #9
0
        public void Execute(string inputFileName)
        {
            var seqServer = new StubSeqEndpoint();
            var result    = new Importer(seqServer)
                            .Import(TestHelper.GetFilePath(inputFileName));

            result.ShouldBeSuccessful();
            Approvals.VerifyJson(seqServer.LogsAsJson);
        }
コード例 #10
0
        public void Parses_Rule_With_No_Content()
        {
            var input = Resources.GetResourceLines(this, "day7.sample.txt");

            var rawRules = input.Skip(7).Take(1).ToArray();
            var rules    = ParseRules(rawRules);

            Approvals.VerifyJson(SerializeObject(rules));
        }
コード例 #11
0
        public void ReadSampleAppMef2Test()
        {
            var assembly = typeof(SampleApp.MainWindow).Assembly;
            var result   = MetadataReader.Read(assembly);

            var data = Serialize(result);

            Approvals.VerifyJson(data);
        }
コード例 #12
0
        private bool VerifyContentType(IContentType obj)
        {
            var jsonable = Mapper.Map <DocumentTypeDisplay>(obj);

            jsonable.Key = new Guid("2BFEC211-884B-4E70-A8BD-6992C0DC687C");
            jsonable.Udi = new GuidUdi("document-type", jsonable.Key);
            Approvals.VerifyJson(jsonable.ToJson());
            return(true);
        }
コード例 #13
0
        public void ReadThisAssemblyTest()
        {
            var assembly = GetType().Assembly;
            var result   = MetadataReader.Read(assembly);

            var data = Serialize(result);

            Approvals.VerifyJson(data);
        }
コード例 #14
0
        public void Orders_Dependent_Types_Later_Than_Their_Dependencies()
        {
            /*
             * Setup
             *
             * Alias    Parent    AllowedChildren    Compositions      Dependencies           Indirect                      All
             * d-1-1    d-1;                         cmp-1-1; cmp-2;   d-1; cmp-1-1; cmp-2;   cmp-1;                        d-1; cmp-1-1; cmp-2; cmp-1;
             * cmp-1-1                               cmp-1;            cmp-1;                                               cmp-1;
             * cmp-2
             * d-2                d-1; d-1-1;                          d-1; d-1-1;            d-1; cmp-1-1; cmp-2; cmp-1;   d-1; d-1-1; d-1; cmp-1-1; cmp-2; cmp-1;
             * cmp-1
             * d-1-2    d-1;                                           d-1;                   cmp-1;                        d-1; cmp-1;
             * d-1                                   cmp-1;            cmp-1;                                               cmp-1;
             *
             * Expectation
             * cmp-1
             * cmp-2
             * cmp-1-1
             * d-1
             * d-1-1
             * d-1-2
             * d-2
             *
             */


            Config.DocumentType("d-1-1")
            .Parent("d-1")
            .Compositions("cmp-1-1", "cmp-2");

            Config.DocumentType("cmp-1-1")
            .Compositions("cmp-1");

            Config.DocumentType("cmp-2");

            Config.DocumentType("d-2")
            .AllowedAsRoot(true)
            .AllowedChildren("d-1", "d-1-1");

            Config.DocumentType("cmp-1");

            Config.DocumentType("d-1-2")
            .Parent("d-1");

            Config.DocumentType("d-1")
            .Compositions("cmp-1");
            //.AllowedChildren("d-1-1"); // dammit! - what about circular references? (parent/allowedchildren) - rare UC?
            // See prevents circular reference test.

            var diff = Config.Compare();

            var orderedTypes = DependencyComparer.OrderByDependencies(diff.DocumentTypes.Values);
            var aliases      = orderedTypes.Select(t => t.Key);

            Approvals.VerifyJson(aliases.ToJson(Formatting.None));
        }
コード例 #15
0
 public void CustomerContract_VerifyTheCustomerContract_ApproveTheCurrentVersion()
 {
     using (var server = TestServer.Create <Startup>())
     {
         server.BaseAddress = new Uri("http://localhost:4000/swagger/docs/v1");
         var response = server.HttpClient.GetAsync(server.BaseAddress)
                        .Result.Content.ReadAsStringAsync();
         Approvals.VerifyJson(response.Result);
     }
 }
コード例 #16
0
        public async Task SwaggerContract()
        {
            // Arrange

            // Act
            var json = await _httpClient.GetStringAsync("/internal/swagger/v1/swagger.json");

            // Assert
            Approvals.VerifyJson(json);
        }
コード例 #17
0
 public void Read(FileInfo lessonFile)
 {
     using (ApprovalResults.ForScenario(lessonFile.Name))
     {
         var reader = new LessonDocumentReader();
         var lesson = reader.Read(lessonFile.FullName);
         var json   = JsonConvert.SerializeObject(lesson, Formatting.Indented);
         Approvals.VerifyJson(json);
     }
 }
コード例 #18
0
        public void ApprovalsComplexObjectJson()
        {
            // assign
            var p = Student.Default();

            // act

            // assert
            Approvals.VerifyJson(JsonConvert.SerializeObject(p));
        }
コード例 #19
0
        public void AddItem_should_returnAnObjectThatOnlyIteratesOverItsOwnChildren_and_doesNotMutatePreviousChildStates()
        {
            var list = new AppendOnlyList <Cat>();
            var list1 = list.AddItem(new Cat("frodo", 10));
            var list2 = list1.AddItem(new Cat("Gandalf", 25));
            var list3 = list2.AddItem(new Cat("Buttons", 13));
            var json = new[] { list, list1, list2, list3 }.ToJsons();

            Approvals.VerifyJson(json);
        }
コード例 #20
0
 public void Validate(List <string> warmup, List <string> movements, Lesson lesson, string scenarioName)
 {
     using (ApprovalResults.ForScenario(scenarioName))
     {
         var validator        = new LessonValidator();
         var validationResult = validator.Validate(warmup, movements, lesson);
         var json             = JsonConvert.SerializeObject(validationResult, Formatting.Indented);
         Approvals.VerifyJson(json);
     }
 }
コード例 #21
0
        public void Output_Success_ApproveApiSurface()
        {
            // Arrange
            GetEventDetailsOutput output = new GetEventDetailsOutput(
                new Guid("9F3C4AB1-C27A-4A6A-B95A-D83A9251F961"),
                "The Title",
                new Guid("0A3D24CE-FC83-4355-91EF-E593D168FC1A"),
                "John Doe",
                "The Location",
                "The MeetingPoint",
                "The description",
                new DateTime(2019, 10, 5, 19, 0, 0),
                new DateTime(2019, 10, 5, 22, 0, 0),
                false,
                false,
                new List <ParticipantOutput>
            {
                new ParticipantOutput(
                    "Name",
                    "Email",
                    "AvatarId",
                    "Team 1",
                    ParticipantStatus.Accepted,
                    1,
                    "The Note")
            },
                new List <CommentOutput>
            {
                new CommentOutput(
                    new Guid("93F4FAD3-425C-4447-89DE-AEB25E862E02"),
                    new Guid("4F969046-7899-4FBE-8C54-1482C2BF24D0"),
                    "John Doe",
                    "*****@*****.**",
                    "avatarId",
                    new DateTime(2019, 10, 3, 12, 42, 0),
                    new DateTime(2019, 10, 4, 13, 42, 0),
                    "The comment text",
                    true,
                    true)
            },
                true,
                ParticipantStatus.Accepted,
                "The current Note",
                "Current Team 1",
                1);

            // Act
            presenter.Output(output);
            var jsonObject = presenter.GetJsonObject();

            // Assert
            var json = JsonConvert.SerializeObject(jsonObject);

            Approvals.VerifyJson(json);
        }
コード例 #22
0
        public void Nexu_Relation_Udi_Should_Match_Id()
        {
            // act
            var result = new NexuRelation
            {
                Id = new Guid("9a935375-6c89-4dda-ae83-b9207e19a3ee")
            };

            // assert
            Approvals.VerifyJson(JsonConvert.SerializeObject(result));
        }
コード例 #23
0
        public void ReturnCustomersInAlphabeticalOrderByLastName()
        {
            var vipCustomers = new VipCustomers();

            vipCustomers.Add(new Customer("Albert", "Thomson"));
            vipCustomers.Add(new Customer("Mandy", "Harris"));
            vipCustomers.Add(new Customer("John", "Smith"));

            var orderedVipCustomers = vipCustomers.InAlphabeticalOrderByLastName();

            Approvals.VerifyJson(JsonConvert.SerializeObject(orderedVipCustomers));
        }
コード例 #24
0
        public void TestGetStatusChangedFilesFromString(string testName, string statusString)
        {
            // TODO produce a valid working directory
            var module = new GitModule(Path.GetTempPath());

            using (ApprovalResults.ForScenario(testName.Replace(' ', '_')))
            {
                // git status --porcelain=2 --untracked-files=no -z
                var statuses = GitCommandHelpers.GetStatusChangedFilesFromString(module, statusString);
                Approvals.VerifyJson(JsonConvert.SerializeObject(statuses));
            }
        }
コード例 #25
0
        public void TestGetDiffChangedFilesFromString(string testName, StagedStatus stagedStatus, string statusString)
        {
            // TODO produce a valid working directory
            var module = new GitModule(Path.GetTempPath());

            using (ApprovalResults.ForScenario(testName.Replace(' ', '_')))
            {
                // git diff -M -C -z --name-status
                var statuses = GitCommandHelpers.GetDiffChangedFilesFromString(module, statusString, stagedStatus);
                Approvals.VerifyJson(JsonConvert.SerializeObject(statuses));
            }
        }
コード例 #26
0
        public void GetDiffChangedFilesFromString(string testName, StagedStatus stagedStatus, string statusString)
        {
            // TODO produce a valid working directory
            GitModule module = new(Path.GetTempPath());

            using (ApprovalResults.ForScenario(testName.Replace(' ', '_')))
            {
                // git diff --find-renames --find-copies -z --name-status
                var statuses = module.GetTestAccessor().GetDiffChangedFilesFromString(statusString, stagedStatus);
                Approvals.VerifyJson(JsonConvert.SerializeObject(statuses));
            }
        }
コード例 #27
0
 public void ExtractFromMovements(string lessonNumber)
 {
     using (ApprovalResults.ForScenario(lessonNumber))
     {
         var xlsxFile = TestDataDirectory.GetOrCreateSubDirectory("InputData")
                        .GetFiles()
                        .First(x => x.Name == "Movements.xlsx");
         var document  = new XlsxDocumentReader().Read(xlsxFile.FullName);
         var movements = new LessonMovementsExtractor().Extract(document, lessonNumber);
         var json      = JsonConvert.SerializeObject(movements, Formatting.Indented);
         Approvals.VerifyJson(json);
     }
 }
コード例 #28
0
        public void Output_Success()
        {
            // Arrange
            var output = CreateUserProfileOutput();

            // Act
            presenter.Output(output);
            var viewModel = presenter.GetViewModel();

            // Arrange
            viewModel.Should().NotBeNull();
            Approvals.VerifyJson(JsonConvert.SerializeObject(viewModel));
        }
コード例 #29
0
        public void TestGetStatusChangedFilesFromString(string testName, string statusString)
        {
            // TODO produce a valid working directory
            GitModule module = new(Path.GetTempPath());
            GetAllChangedFilesOutputParser getAllChangedFilesOutputParser = new(() => module);

            using (ApprovalResults.ForScenario(testName.Replace(' ', '_')))
            {
                // git status --porcelain=2 --untracked-files=no -z
                var statuses = getAllChangedFilesOutputParser.Parse(statusString);
                Approvals.VerifyJson(JsonConvert.SerializeObject(statuses));
            }
        }
コード例 #30
0
        public void GetAListOfFilteredByFatalCyclingAccidentsAndSortedByIdDescending()
        {
            var actual = _subject.Get(filter =>
                                      filter.Severity == Severity.Fatal &&
                                      filter.Casualties.Any(casualty =>
                                                            casualty.Mode.Equals("PedalCycle") &&
                                                            casualty.Severity == Severity.Fatal),
                                      OrderBy(x => x.AccidentStatisticId, false))
                         .GetAwaiter()
                         .GetResult();

            Approvals.VerifyJson(actual.ToJson());
        }