public async Task <PublishResult> UpdateItemAsync(IWorkshopItemChangeSet settings)
        {
            await Task.Delay(100);

            _eventOrder += "u";
            return(PublishResult.Ok);
        }
예제 #2
0
        GivenTaskWithItemId_Title_Description_Folder_And_Visibility__WhenRunningTask__ShouldPublishWithSettings()
        {
            WorkshopItemSpy  workshopItemSpy = new WorkshopItemSpy();
            SteamWorkshopSpy workshopSpy     = new SteamWorkshopSpy
            {
                WorkshopItemsById = { { ItemId, workshopItemSpy } }
            };

            UpdateSteamWorkshopItemTask sut = new UpdateSteamWorkshopItemTask(workshopSpy)
            {
                AppId     = AppId,
                ItemId    = ItemId,
                ChangeSet = new WorkshopItemChangeSetStub
                {
                    ChangeSetValidationResult = (true, null),

                    Title = Title,
                    DescriptionFilePath = DescriptionFilePath,
                    ItemFolderPath      = ExpectedDirectoryName,
                    Visibility          = WorkshopItemVisibility.Public,
                    Tags = ExpectedTags
                }
            };

            sut.Run();

            IWorkshopItemChangeSet actual = workshopItemSpy.ReceivedSettings;

            Assert.AreEqual(AppId, workshopSpy.AppId);
            Assert.AreEqual(Title, actual.Title);
            Assert.AreEqual(DescriptionFilePath, actual.DescriptionFilePath);
            Assert.AreEqual(WorkshopItemVisibility.Public, actual.Visibility);
            Assert.AreEqual(ExpectedDirectoryName, actual.ItemFolderPath);
            Assert.AreEqual(ExpectedTags, actual.Tags);
        }
 protected override SteamWorkshopTask CreateTaskWithChangeSet(IWorkshopItemChangeSet changeSet)
 {
     return(new UpdateSteamWorkshopItemTask(FacepunchSteamWorkshopAdapter.Instance)
     {
         ChangeSet = changeSet
     });
 }
예제 #4
0
        public override Task <WorkshopItemPublishResult> PublishNewWorkshopItemAsync(IWorkshopItemChangeSet settings)
        {
            ReceivedSettings = settings;
            CallOrder       += "p";

            return(Task.FromResult(WorkshopItemPublishResult));
        }
예제 #5
0
 private static void WithTags(IWorkshopItemChangeSet settings, ref Editor editor)
 {
     foreach (var tag in settings.Tags)
     {
         editor.WithTag(tag);
     }
 }
        GivenTaskWithAppId_Title_Description_Language_Folder_And_Visibility__WhenRunningTask__ShouldPublishWithSettings()
        {
            SteamWorkshopSpy          workshopSpy   = MakeSteamWorkshopSpy();
            WorkshopItemChangeSetStub changeSetStub = new WorkshopItemChangeSetStub
            {
                ChangeSetValidationResult = (true, null),

                Title = Title,
                DescriptionFilePath = DescriptionFilePath,
                ItemFolderPath      = ExpectedDirectoryName,
                Language            = Language,
                Visibility          = WorkshopItemVisibility.Public,
                Tags = ExpectedTags
            };

            CreateSteamWorkshopItemTask sut = MakeSutWithWorkshopAndChangeSet(workshopSpy, changeSetStub);

            sut.Run();

            IWorkshopItemChangeSet actual = workshopSpy.ReceivedSettings;

            Assert.AreEqual(AppId, workshopSpy.AppId);
            Assert.AreEqual(Title, actual.Title);
            Assert.AreEqual(DescriptionFilePath, actual.DescriptionFilePath);
            Assert.AreEqual(Language, actual.Language);
            Assert.AreEqual(WorkshopItemVisibility.Public, actual.Visibility);
            Assert.AreEqual(ExpectedDirectoryName, actual.ItemFolderPath);
            Assert.AreEqual(ExpectedTags, actual.Tags);
        }
 private static void UpdateContent(IWorkshopItemChangeSet settings, ref Editor editor)
 {
     if (settings.ItemFolderPath != null)
     {
         editor.WithContent(settings.ItemFolderPath);
     }
 }
 private static CreateSteamWorkshopItemTask MakeSutWithWorkshopAndChangeSet(ISteamWorkshop workshop,
                                                                            IWorkshopItemChangeSet changeSet)
 {
     return(new CreateSteamWorkshopItemTask(workshop)
     {
         AppId = AppId,
         ChangeSet = changeSet
     });
 }
        GivenConfiguredTaskWithoutLanguage_And_Visibility__WhenRunningTask__ShouldPublishWith_EmptyDescription_PrivateVisibility_And_EnglishLanguage()
        {
            SteamWorkshopSpy            workshopSpy = MakeSteamWorkshopSpy();
            CreateSteamWorkshopItemTask sut         = MakeSutWithWorkshopAndChangeSet(workshopSpy, CreateValidChangeSet());

            sut.Run();

            IWorkshopItemChangeSet actual = workshopSpy.ReceivedSettings;

            AssertPublishedWithDefaultSettings(actual);
        }
        private static void UpdateDescription(IWorkshopItemChangeSet settings, ref Editor editor)
        {
            string description = null;

            if (settings.DescriptionFilePath != null)
            {
                FileInfo descriptionFile = new FileInfo(settings.DescriptionFilePath);
                using StreamReader streamReader = descriptionFile.OpenText();
                description = streamReader.ReadToEnd();
            }

            editor.WithDescription(description);
        }
예제 #11
0
        public override async Task <WorkshopItemPublishResult> PublishNewWorkshopItemAsync(
            IWorkshopItemChangeSet settings)
        {
            Task <WorkshopItemPublishResult> publishTask = base.PublishNewWorkshopItemAsync(settings);

            Task.WaitAll(publishTask);
            WorkshopItemPublishResult workshopItemPublishResult = publishTask.Result;

            await Task.Delay(500);

            _eventOrder += "p";
            return(workshopItemPublishResult);
        }
        public async Task <PublishResult> UpdateItemAsync(IWorkshopItemChangeSet settings)
        {
            Editor editor = _item.Edit();

            editor
            .WithTitle(settings.Title);
            UpdateDescription(settings, ref editor);
            UpdateVisibility(settings, ref editor);
            UpdateContent(settings, ref editor);
            UpdateTags(settings, ref editor);

            Steamworks.Ugc.PublishResult result = await editor.SubmitAsync();

            return(result.Success ? PublishResult.Ok : PublishResult.Failed);
        }
        private static void UpdateVisibility(IWorkshopItemChangeSet settings, ref Editor editor)
        {
            switch (settings.Visibility)
            {
            case WorkshopItemVisibility.Public:
                editor.WithPublicVisibility();
                break;

            case WorkshopItemVisibility.Private:
                editor.WithPrivateVisibility();
                break;

            default:
                throw new ArgumentOutOfRangeException();
            }
        }
예제 #14
0
        public async Task <WorkshopItemPublishResult> PublishNewWorkshopItemAsync(IWorkshopItemChangeSet settings)
        {
            Editor editor = Editor.NewCommunityFile;

            editor = EditorWithVisibility(settings.Visibility, ref editor)
                     .ForAppId(AppId)
                     .WithTitle(settings.Title)
                     .WithDescription(settings.GetDescriptionTextFromFile())
                     .WithContent(new DirectoryInfo(settings.ItemFolderPath))
                     .InLanguage(settings.Language);
            WithTags(settings, ref editor);

            Steamworks.Ugc.PublishResult submitResult = await editor.SubmitAsync();

            PublishResult publishResult = submitResult.Success ? PublishResult.Ok : PublishResult.Failed;

            return(new WorkshopItemPublishResult(submitResult.FileId, publishResult));
        }
 public Task <WorkshopItemPublishResult> PublishNewWorkshopItemAsync(IWorkshopItemChangeSet settings)
 {
     _eventOrder += "p";
     return(Task.FromResult(new WorkshopItemPublishResult(0, PublishResult.Ok)));
 }
예제 #16
0
 public virtual async Task <WorkshopItemPublishResult> PublishNewWorkshopItemAsync(
     IWorkshopItemChangeSet settings)
 {
     return(null);
 }
예제 #17
0
 public override async Task <WorkshopItemPublishResult> PublishNewWorkshopItemAsync(
     IWorkshopItemChangeSet settings)
 {
     return(WorkshopItemPublishResult);
 }
 private static void AssertPublishedWithDefaultSettings(IWorkshopItemChangeSet actual)
 {
     Assert.AreEqual("English", actual.Language);
     Assert.AreEqual(WorkshopItemVisibility.Private, actual.Visibility);
 }
예제 #19
0
 protected abstract SteamWorkshopTask CreateTaskWithChangeSet(IWorkshopItemChangeSet changeSet);
예제 #20
0
        protected BaseSteamWorkshopTaskBuilder()
        {
            FileSystem fileSystem = new FileSystem();

            ChangeSet = new WorkshopItemChangeSet(fileSystem);
        }
예제 #21
0
 public virtual async Task <PublishResult> UpdateItemAsync(IWorkshopItemChangeSet settings)
 {
     return(Result);
 }
예제 #22
0
 public override Task <PublishResult> UpdateItemAsync(IWorkshopItemChangeSet settings)
 {
     ReceivedSettings = settings;
     return(base.UpdateItemAsync(settings));
 }