File: FormatTests\FormattedObject\StringRecordsCollectionTests.cs
Web Access
Project: src\src\System.Private.Windows.Core\tests\BinaryFormatTests\BinaryFormatTests.csproj (BinaryFormatTests)
// Licensed to the .NET Foundation under one or more agreements.
// The .NET Foundation licenses this file to you under the MIT license.
 
using System.Private.Windows.BinaryFormat;
using System.Private.Windows.BinaryFormat.Serializer;
 
namespace FormatTests.FormattedObject;
 
public class StringRecordsCollectionTests
{
    [Fact]
    public void BasicFunctionality()
    {
        StringRecordsCollection collection = new(currentId: 1);
        IRecord record = collection.GetStringRecord("Foo")!;
        collection.CurrentId.Should().Be(2);
        record.Should().BeOfType<BinaryObjectString>();
        ((BinaryObjectString)record).ObjectId.Should().Be(1);
 
        record = collection.GetStringRecord("Foo")!;
        collection.CurrentId.Should().Be(2);
        record.Should().BeOfType<MemberReference>();
        ((MemberReference)record).IdRef.Should().Be(1);
 
        record = collection.GetStringRecord("Bar")!;
        collection.CurrentId.Should().Be(3);
        record.Should().BeOfType<BinaryObjectString>();
        ((BinaryObjectString)record).ObjectId.Should().Be(2);
    }
}