Esempio n. 1
0
    public async Task Where_with_variable()
    {
        var query = @"
query ($value: String!)
{
  parentEntities (where: {path: 'Property', comparison: 'equal', value: [$value]})
  {
    property
  }
}
";

        var entity1 = new ParentEntity
        {
            Property = "Value1"
        };
        var entity2 = new ParentEntity
        {
            Property = "Value2"
        };

        var inputs = new Inputs(new Dictionary <string, object>
        {
            { "value", "value2" }
        });
        var result = await RunQuery(await sqlInstance.Build(), query, inputs, null, entity1, entity2);

        ObjectApprover.VerifyWithJson(result);
    }
Esempio n. 2
0
    public async Task Many_children()
    {
        var queryString = @"
{
  manyChildren
  {
    child1
    {
      id
    }
  }
}";

        var parent = new WithManyChildrenEntity
        {
            Id = Guid.Parse("00000000-0000-0000-0000-000000000001"),
        };
        var child1 = new Child1Entity
        {
            Id     = Guid.Parse("00000000-0000-0000-0000-000000000002"),
            Parent = parent
        };
        var child2 = new Child2Entity
        {
            Id     = Guid.Parse("00000000-0000-0000-0000-000000000003"),
            Parent = parent
        };

        parent.Child1 = child1;
        parent.Child2 = child2;

        var result = await RunQuery(queryString, null, parent, child1, child2);

        ObjectApprover.VerifyWithJson(result);
    }
Esempio n. 3
0
    public void List(int?first, int?after, int?last, int?before)
    {
        NamerFactory.AdditionalInformation = $"first_{first}_after_{after}_last_{last}_before_{before}";
        var connection = ConnectionConverter.ApplyConnectionContext(list, first, after, last, before);

        ObjectApprover.VerifyWithJson(connection);
    }
Esempio n. 4
0
    public async Task CustomType()
    {
        var queryString = @"
{
  customType
  {
    property
  }
}";

        var entity1 = new CustomTypeEntity
        {
            Id       = Guid.Parse("00000000-0000-0000-0000-000000000001"),
            Property = long.MaxValue,
        };
        var entity2 = new CustomTypeEntity
        {
            Id       = Guid.Parse("00000000-0000-0000-0000-000000000002"),
            Property = 3,
        };

        var result = await RunQuery(queryString, null, entity1, entity2);

        ObjectApprover.VerifyWithJson(result);
    }
Esempio n. 5
0
    public async Task In_multiple()
    {
        var queryString = @"
{
  parentEntities
  (where: {path: 'Property', comparison: 'In', value: ['Value1', 'Value2']})
  {
    property
  }
}";

        var entity1 = new ParentEntity
        {
            Id       = Guid.Parse("00000000-0000-0000-0000-000000000001"),
            Property = "Value1"
        };
        var entity2 = new ParentEntity
        {
            Id       = Guid.Parse("00000000-0000-0000-0000-000000000002"),
            Property = "Value2"
        };

        var result = await RunQuery(queryString, null, entity1, entity2);

        ObjectApprover.VerifyWithJson(result);
    }
Esempio n. 6
0
    public async Task Connection_first_page()
    {
        var queryString = @"
{
  parentEntitiesConnection(first:2, after: '0') {
    totalCount
    edges {
      cursor
      node {
        property
      }
    }
    items {
      property
    }
  }
}

";
        var entities    = BuildEntities(8);

        var result = await RunQuery(queryString, null, entities.ToArray());

        ObjectApprover.VerifyWithJson(result);
    }
Esempio n. 7
0
    public async Task OrderByDescending()
    {
        var queryString = @"
{
  parentEntities (orderBy: {path: 'Property', descending: true})
  {
    property
  }
}";

        var entity1 = new ParentEntity
        {
            Id       = Guid.Parse("00000000-0000-0000-0000-000000000001"),
            Property = "Value1"
        };
        var entity2 = new ParentEntity
        {
            Id       = Guid.Parse("00000000-0000-0000-0000-000000000002"),
            Property = "Value2"
        };

        var result = await RunQuery(queryString, null, entity1, entity2);

        ObjectApprover.VerifyWithJson(result);
    }
    public async Task Root_connectionFiltered()
    {
        var query   = @"
{
  parentEntitiesConnectionFiltered {
    totalCount
    edges {
      cursor
      node {
        property
      }
    }
    items {
      property
    }
  }
}
";
        var entity1 = new FilterParentEntity
        {
            Property = "Value1"
        };
        var entity2 = new FilterParentEntity
        {
            Property = "Ignore"
        };

        using (var database = await sqlInstance.Build())
        {
            var result = await RunQuery(database, query, null, BuildFilters(), entity1, entity2);

            ObjectApprover.VerifyWithJson(result);
        }
    }
Esempio n. 9
0
    public void WithStatementBodyProperty()
    {
        var sagaType = module.GetTypeDefinition <WithStatementBodyPropertySaga>();

        SagaDefinitionReader.TryGetSqlSagaDefinition(sagaType, out var definition);
        ObjectApprover.VerifyWithJson(definition);
    }
    public async Task Multiple_nested()
    {
        var query = @"
{
  level1Entities
  {
    level2Entity
    {
      level3Entity
      {
        property
      }
    }
  }
}";

        var level3 = new Level3Entity
        {
            Property = "Value"
        };
        var level2 = new Level2Entity
        {
            Level3Entity = level3
        };
        var level1 = new Level1Entity
        {
            Level2Entity = level2
        };

        var result = await RunQuery(query, null, true, null, level1, level2, level3);

        ObjectApprover.VerifyWithJson(result);
    }
    public async Task RootList_filtered()
    {
        var query = @"
{
  parentEntitiesFiltered
  {
    property
  }
}";

        var entity1 = new FilterParentEntity
        {
            Property = "Value1"
        };
        var entity2 = new FilterParentEntity
        {
            Property = "Ignore"
        };

        using (var database = await sqlInstance.Build())
        {
            var result = await RunQuery(database, query, null, BuildFilters(), entity1, entity2);

            ObjectApprover.VerifyWithJson(result);
        }
    }
    public async Task Where_multiple()
    {
        var query = @"
{
  parentEntities
  (where:
    [
      {path: 'Property', comparison: 'startsWith"", value: 'Valu'}
      {path: 'Property', comparison: 'endsWith"", value: 'ue3'}
    ]
  )
  {
    property
  }
}";

        var entity1 = new ParentEntity
        {
            Property = "Value1"
        };
        var entity2 = new ParentEntity
        {
            Property = "Value2"
        };
        var entity3 = new ParentEntity
        {
            Property = "Value3"
        };

        var result = await RunQuery(query, null, true, null, entity1, entity2, entity3);

        ObjectApprover.VerifyWithJson(result);
    }
    public async Task Many_children()
    {
        var query = @"
{
  manyChildren
  {
    child1
    {
      id
    }
  }
}";

        var parent = new WithManyChildrenEntity();
        var child1 = new Child1Entity
        {
            Parent = parent
        };
        var child2 = new Child2Entity
        {
            Parent = parent
        };

        parent.Child1 = child1;
        parent.Child2 = child2;

        var result = await RunQuery(query, null, true, null, parent, child1, child2);

        ObjectApprover.VerifyWithJson(result);
    }
Esempio n. 14
0
    public async Task Skip_level()
    {
        var query = @"
{
  skipLevel
  {
    level3Entity
    {
      property
    }
  }
}";

        var level3 = new Level3Entity
        {
            Property = "Value"
        };
        var level2 = new Level2Entity
        {
            Level3Entity = level3
        };
        var level1 = new Level1Entity
        {
            Level2Entity = level2
        };

        var result = await RunQuery(await sqlInstance.Build(), query, null, null, level1, level2, level3);

        ObjectApprover.VerifyWithJson(result);
    }
    public virtual void SaveWithWeirdCharacters()
    {
        var endpointName = nameof(SaveWithWeirdCharacters);
        var definition   = new SagaDefinition(
            tableSuffix: "SagaWithWeirdCharactersಠ_ಠ",
            name: "SagaWithWeirdCharactersಠ_ಠ",
            correlationProperty: new CorrelationProperty
            (
                name: "SimplePropertyಠ_ಠ",
                type: CorrelationPropertyType.String
            )
            );

        var execute = new TestDelegate(() =>
        {
            DropAndCreate(definition, endpointName, schema);
            var id     = Guid.NewGuid();
            var result = SaveWeirdAsync(id, endpointName).GetAwaiter().GetResult();
            Assert.IsNotNull(result);
#if net452
            ObjectApprover.VerifyWithJson(result, s => s.Replace(id.ToString(), "theSagaId"));
#endif
        });

        if (SupportsUnicodeIdentifiers)
        {
            execute();
        }
        else
        {
            Assert.Throws <Exception>(execute);
        }
    }
    public void GetNextChunk()
    {
        var startSlice   = new DateTime(2000, 1, 1, 1, 1, 1, DateTimeKind.Utc);
        var timeout1Time = startSlice.AddSeconds(1);
        var timeout2Time = goodUtcNowValue.AddSeconds(10);
        var timeout1     = new TimeoutData
        {
            Destination = "theDestination",
            State       = new byte[] { 1 },
            Time        = timeout1Time,
            Headers     = new Dictionary <string, string>()
        };
        var timeout2 = new TimeoutData
        {
            Destination = "theDestination",
            State       = new byte[] { 1 },
            Time        = timeout2Time,
            Headers     = new Dictionary <string, string>()
        };
        var persister = Setup(schema);

        persister.Add(timeout1, null).Await();
        persister.Add(timeout2, null).Await();
        var nextChunk = persister.GetNextChunk(startSlice).Result;

        Assert.That(nextChunk.NextTimeToQuery, Is.EqualTo(timeout2Time).Within(TimeSpan.FromSeconds(1)));
        Assert.IsNotNull(nextChunk);
        Assert.AreEqual(DateTimeKind.Utc, nextChunk.NextTimeToQuery.Kind);
#if NET452
        ObjectApprover.VerifyWithJson(nextChunk, s => s.Replace(timeout1.Id, "theId"));
#endif
    }
Esempio n. 17
0
    public async Task Skip()
    {
        var queryString = @"
{
  parentEntities (skip: 1)
  {
    property
  }
}";

        var entity1 = new ParentEntity
        {
            Id       = Guid.Parse("00000000-0000-0000-0000-000000000001"),
            Property = "Value1"
        };
        var entity2 = new ParentEntity
        {
            Id       = Guid.Parse("00000000-0000-0000-0000-000000000002"),
            Property = "Value2"
        };

        var result = await RunQuery(queryString, null, entity1, entity2);

        ObjectApprover.VerifyWithJson(result);
    }
    public void GetNextChunk_CleanupOnce()
    {
        var startSlice   = new DateTime(2000, 1, 1, 1, 1, 1, DateTimeKind.Utc);
        var timeout1Time = startSlice.AddYears(-10);
        var timeout1     = new TimeoutData
        {
            Destination = "theDestination",
            State       = new byte[] { 1 },
            Time        = timeout1Time,
            Headers     = new Dictionary <string, string>()
        };
        var persister = Setup(schema, TimeSpan.FromMinutes(2));

        persister.Add(timeout1, null).Await();

        //Call once triggering clean-up mode
        persister.GetNextChunk(startSlice).GetAwaiter().GetResult();

        //Call again to check if clean-up mode is now disabled -- expect no results
        var nextChunk = persister.GetNextChunk(startSlice).Result;

        Assert.IsNotNull(nextChunk);
#if NET452
        ObjectApprover.VerifyWithJson(nextChunk, s => s.Replace(timeout1.Id, "theId"));
#endif
    }
Esempio n. 19
0
    public async Task Where_case_sensitive()
    {
        var queryString = @"
{
  parentEntities (where: {path: 'Property', comparison: 'equal', value: 'Value2', case: 'Ordinal' })
  {
    property
  }
}";

        var entity1 = new ParentEntity
        {
            Id       = Guid.Parse("00000000-0000-0000-0000-000000000001"),
            Property = "Value1"
        };
        var entity2 = new ParentEntity
        {
            Id       = Guid.Parse("00000000-0000-0000-0000-000000000002"),
            Property = "Value2"
        };

        var result = await RunQuery(queryString, null, entity1, entity2);

        ObjectApprover.VerifyWithJson(result);
    }
Esempio n. 20
0
    public async Task RootList_filtered()
    {
        var queryString = @"
{
  parentEntitiesFiltered
  {
    property
  }
}";

        var entity1 = new FilterParentEntity
        {
            Id       = Guid.Parse("00000000-0000-0000-0000-000000000001"),
            Property = "Value1"
        };
        var entity2 = new FilterParentEntity
        {
            Id       = Guid.Parse("00000000-0000-0000-0000-000000000002"),
            Property = "Ignore"
        };

        var result = await RunQuery(queryString, null, true, BuildFilters(), entity1, entity2);

        ObjectApprover.VerifyWithJson(result);
    }
Esempio n. 21
0
    public async Task Where_with_variable()
    {
        var queryString = @"
query ($value: String!)
{
  parentEntities (where: {path: 'Property', comparison: 'equal', value: [$value]})
  {
    property
  }
}
";

        var entity1 = new ParentEntity
        {
            Id       = Guid.Parse("00000000-0000-0000-0000-000000000001"),
            Property = "Value1"
        };
        var entity2 = new ParentEntity
        {
            Id       = Guid.Parse("00000000-0000-0000-0000-000000000002"),
            Property = "Value2"
        };

        var inputs = new Inputs(new Dictionary <string, object>
        {
            { "value", "value2" }
        });
        var result = await RunQuery(queryString, inputs, entity1, entity2);

        ObjectApprover.VerifyWithJson(result);
    }
Esempio n. 22
0
    public async Task Root_connectionFiltered()
    {
        var queryString = @"
{
  parentEntitiesConnectionFiltered {
    totalCount
    edges {
      cursor
      node {
        property
      }
    }
    items {
      property
    }
  }
}
";
        var entity1     = new FilterParentEntity
        {
            Id       = Guid.Parse("00000000-0000-0000-0000-000000000001"),
            Property = "Value1"
        };
        var entity2 = new FilterParentEntity
        {
            Id       = Guid.Parse("00000000-0000-0000-0000-000000000002"),
            Property = "Ignore"
        };


        var result = await RunQuery(queryString, null, true, BuildFilters(), entity1, entity2);

        ObjectApprover.VerifyWithJson(result);
    }
Esempio n. 23
0
    public async Task Id_multiple()
    {
        var queryString = @"
{
  parentEntities
  (ids: ['00000000-0000-0000-0000-000000000001', '00000000-0000-0000-0000-000000000002'])
  {
    property
  }
}";

        var entity1 = new ParentEntity
        {
            Id       = Guid.Parse("00000000-0000-0000-0000-000000000001"),
            Property = "Value1"
        };
        var entity2 = new ParentEntity
        {
            Id       = Guid.Parse("00000000-0000-0000-0000-000000000002"),
            Property = "Value2"
        };
        var entity3 = new ParentEntity
        {
            Id       = Guid.Parse("00000000-0000-0000-0000-000000000003"),
            Property = "Value3"
        };

        var result = await RunQuery(queryString, null, entity1, entity2, entity3);

        ObjectApprover.VerifyWithJson(result);
    }
Esempio n. 24
0
    [Ignore] //TODO Delete?
    public void Commit_on_develop_and_previous_commit_on_master_is_a_hotfix()
    {
        var commitOnDevelop = new MockCommit
        {
            CommitterEx = 1.Seconds().Ago().ToSignature()
        };
        var finder     = new DevelopVersionFinder();
        var mockBranch = new MockBranch("develop")
        {
            commitOnDevelop
        };
        var repository = new MockRepository
        {
            Branches = new MockBranchCollection
            {
                new MockBranch("master")
                {
                    new MockMergeCommit
                    {
                        MessageEx   = "hotfix-0.1.1",
                        CommitterEx = 2.Seconds().Ago().ToSignature()
                    }
                },
                mockBranch
            },
        };
        var version = finder.FindVersion(new GitVersionContext(repository, mockBranch, new Config()));

        Assert.AreEqual(2, version.Minor, "Minor should be master.Minor+1");
        ObjectApprover.VerifyWithJson(version, Scrubbers.GuidAndDateScrubber);
    }
Esempio n. 25
0
    public async Task Skip_level()
    {
        var queryString = @"
{
  skipLevel
  {
    level3Entity
    {
      property
    }
  }
}";

        var level3 = new Level3Entity
        {
            Id       = Guid.Parse("00000000-0000-0000-0000-000000000003"),
            Property = "Value"
        };
        var level2 = new Level2Entity
        {
            Id           = Guid.Parse("00000000-0000-0000-0000-000000000002"),
            Level3Entity = level3
        };
        var level1 = new Level1Entity
        {
            Id           = Guid.Parse("00000000-0000-0000-0000-000000000001"),
            Level2Entity = level2
        };

        var result = await RunQuery(queryString, null, level1, level2, level3);

        ObjectApprover.VerifyWithJson(result);
    }
Esempio n. 26
0
    public void VerifyLambdasAreCalled()
    {
        var directories     = new ConcurrentBag <CapturedDirectory>();
        var files           = new ConcurrentBag <CapturedFile>();
        var targetDirectory = Path.Combine(TestContext.CurrentContext.TestDirectory,
                                           "DirectorySnippetExtractor/VerifyLambdasAreCalled");
        var result    = new TestResult();
        var extractor = new DirectorySnippetExtractor(
            directoryFilter: path =>
        {
            var capture = new CapturedDirectory
            {
                Path = path
            };
            directories.Add(capture);
            return(true);
        },
            fileFilter: path =>
        {
            var capture = new CapturedFile
            {
                Path = path
            };
            files.Add(capture);
            return(true);
        },
            packageOrder: component => new List <string>()
            );

        extractor.ReadComponents(targetDirectory);
        result.Files       = files.OrderBy(file => file.Path).ToList();
        result.Directories = directories.OrderBy(file => file.Path).ToList();
        ObjectApprover.VerifyWithJson(result, Scrubber.Scrub);
    }
Esempio n. 27
0
    public void TransposeRegroupsPerTargetRepositoryAndBranch()
    {
        var m = new Mapper()
                .Add(new Parts("o1/r1", TreeEntryTargetType.Blob, "b1", "a"),
                     new Parts("o1/r2", TreeEntryTargetType.Blob, "b1", "a"),
                     new Parts("o1/r2", TreeEntryTargetType.Blob, "b1", "b"),
                     new Parts("o1/r3", TreeEntryTargetType.Blob, "b1", "a"))
                .Add(new Parts("o1/r1", TreeEntryTargetType.Tree, "b1", "t1"),
                     new Parts("o1/r2", TreeEntryTargetType.Tree, "b1", "t"))
                .Add(new Parts("o2/r4", TreeEntryTargetType.Tree, "b3", "t3"),
                     new Parts("o1/r3", TreeEntryTargetType.Tree, "b1", "sub/t"),
                     new Parts("o1/r2", TreeEntryTargetType.Tree, "b1", "t2"))
                .Add(new Parts("o1/r1", TreeEntryTargetType.Tree, "b1", "t2"),
                     new Parts("o1/r2", TreeEntryTargetType.Tree, "b2", "t"),
                     new Parts("o1/r3", TreeEntryTargetType.Tree, "b1", "t"))
                .Remove(new Parts("o1/r2", TreeEntryTargetType.Blob, "b1", "c"))
                .Remove(new Parts("o1/r3", TreeEntryTargetType.Blob, "b1", "sub/level/d"))
                .Remove(new Parts("o1/r4", TreeEntryTargetType.Blob, "b1", "e"));

        var t = m.Transpose();

        Assert.Equal(3, t.Values.SelectMany(x => x.Where(p => p.Item2 is Parts.NullParts)).Count());

        var orbs = t.Keys.ToList();

        orbs.Sort(StringComparer.Ordinal);

        ObjectApprover.VerifyWithJson(orbs);
    }
    public void RoundTrip()
    {
        var factory    = new EncryptionFactory();
        var serializer = new JsonSerializer
        {
            ContractResolver = factory.GetContractResolver()
        };

        using (var algorithm = CryptoBuilder.Build())
        {
            string serialized;
            using (factory.GetEncryptSession(algorithm))
            {
                var instance = new ClassToSerialize
                {
                    Property1 = "Property1Value",
                    Property2 = "Property2Value"
                };
                serialized = serializer.Serialize(instance);
            }
            using (factory.GetDecryptSession(algorithm))
            {
                var result = serializer.Deserialize <ClassToSerialize>(serialized);
                ObjectApprover.VerifyWithJson(result);
            }
        }
    }
    public void Pull_branch_with_2_commits()
    {
        var repoPath = Clone(ASBMTestRepoWorkingDirPath);

        using (var repo = new Repository(repoPath))
        {
            // Create a pull request branch from the parent of current develop tip
            repo.Branches.Add("pull/1735/merge", "develop~").ForceCheckout();

            AddOneCommitToHead(repo, "code");
            AddOneCommitToHead(repo, "more code");

            var pullBranch = repo.Head;

            var finder = new PullVersionFinder();

            var version = finder.FindVersion(new GitVersionContext
            {
                Repository    = repo,
                CurrentBranch = pullBranch,
            });

            var masterVersion = FindersHelper.RetrieveMasterVersion(repo);

            Assert.AreEqual(masterVersion.Minor + 1, version.Minor, "Minor should be master.Minor+1");
            Assert.AreEqual(1735, version.PreReleaseTag.Number);
            ObjectApprover.VerifyWithJson(version, Scrubbers.GuidAndDateScrubber);
        }
    }
Esempio n. 30
0
    public void Override_using_tag_with_a_stable_release()
    {
        var commit = new MockCommit
        {
            CommitterEx = 2.Seconds().Ago().ToSignature()
        };
        var finder     = new MasterVersionFinder();
        var mockBranch = new MockBranch("master")
        {
            commit
        };
        var mockRepository = new MockRepository
        {
            Branches = new MockBranchCollection
            {
                mockBranch,
            },
            Tags = new MockTagCollection
            {
                new MockTag
                {
                    NameEx   = "0.2.0",
                    TargetEx = commit
                }
            }
        };
        var version = finder.FindVersion(new GitVersionContext(mockRepository, mockBranch, new Config()));

        Assert.AreEqual(0, version.Patch, "Should set the patch version to the patch of the latest hotfix merge commit");
        ObjectApprover.VerifyWithJson(version, Scrubbers.GuidAndDateScrubber);
    }