public async Task GivenWorkshopItem__WhenUpdatingSuccessfully__ShouldReturnOk()
        {
            Item?item = await Item.GetAsync(_itemId);

            Assert.IsNotNull(item);

            FacepunchWorkshopItemAdapter sut = new FacepunchWorkshopItemAdapter(item.Value);

            EawXBuild.Steam.PublishResult actual = await sut.UpdateItemAsync(new WorkshopItemChangeSetDummy());

            Assert.AreEqual(EawXBuild.Steam.PublishResult.Ok, actual);
        }
        public async Task GivenWorkshopItemWithChangedTitle__WhenUpdating__TitleShouldHaveChanged()
        {
            Item?item = await Item.GetAsync(_itemId);

            Assert.IsNotNull(item);

            FacepunchWorkshopItemAdapter sut = new FacepunchWorkshopItemAdapter(item.Value);

            EawXBuild.Steam.PublishResult actual =
                await sut.UpdateItemAsync(new WorkshopItemChangeSetDummy { Title = Title });

            item = GetItem(_itemId);
            Assert.AreEqual(Title, item.Value.Title);
        }
        public async Task GivenWorkshopItemWithChangedVisibility__WhenUpdating__VisibilityShouldHaveChanged()
        {
            Item?item = await Item.GetAsync(_itemId);

            Assert.IsNotNull(item);

            FacepunchWorkshopItemAdapter sut = new FacepunchWorkshopItemAdapter(item.Value);

            EawXBuild.Steam.PublishResult actual = await sut.UpdateItemAsync(new WorkshopItemChangeSetDummy
            {
                Visibility = WorkshopItemVisibility.Public
            });

            item = GetItem(_itemId);
            Assert.IsTrue(item.Value.IsPublic);
        }
        public async Task GivenWorkshopItemWithChangedDescription__WhenUpdating__DescriptionShouldHaveChanged()
        {
            Item?item = await Item.GetAsync(_itemId);

            Assert.IsNotNull(item);

            FacepunchWorkshopItemAdapter sut = new FacepunchWorkshopItemAdapter(item.Value);

            EawXBuild.Steam.PublishResult actual = await sut.UpdateItemAsync(new WorkshopItemChangeSetDummy
            {
                DescriptionFilePath = DescriptionFilePath
            });

            item = GetItem(_itemId);
            Assert.AreEqual(Description, item.Value.Description);
        }
        public async Task GivenWorkshopItemWithChangedItemFolderPath__WhenUpdating__ShouldHaveChangedFiles()
        {
            Item item = GetItem(_itemId);

            FacepunchWorkshopItemAdapter sut = new FacepunchWorkshopItemAdapter(item);

            EawXBuild.Steam.PublishResult actual = await sut.UpdateItemAsync(new WorkshopItemChangeSetDummy
            {
                ItemFolderPath = _itemFolder.FullName
            });

            Assert.AreEqual(EawXBuild.Steam.PublishResult.Ok, actual);

            item = GetItem(_itemId);
            await item.DownloadAsync();

            DirectoryInfo itemDirectory = new DirectoryInfo(item.Directory);
            DirectoryInfo subDirectory  = itemDirectory.GetDirectories()[0];

            Assert.AreEqual("sub_dir", subDirectory.Name);
            Assert.AreEqual("file.txt", subDirectory.GetFiles()[0].Name);
        }