@@ -494,4 +494,63 @@ TEST(shellSplitString, testUnbalancedQuotes)
494494 ASSERT_THROW (shellSplitString (" foo\" bar\\\" " ), Error);
495495}
496496
497+ /* ----------------------------------------------------------------------------
498+ * optionalBracket
499+ * --------------------------------------------------------------------------*/
500+
501+ TEST (optionalBracket, emptyContent)
502+ {
503+ ASSERT_EQ (optionalBracket (" (" , " " , " )" ), " " );
504+ }
505+
506+ TEST (optionalBracket, nonEmptyContent)
507+ {
508+ ASSERT_EQ (optionalBracket (" (" , " foo" , " )" ), " (foo)" );
509+ }
510+
511+ TEST (optionalBracket, emptyPrefixAndSuffix)
512+ {
513+ ASSERT_EQ (optionalBracket (" " , " foo" , " " ), " foo" );
514+ }
515+
516+ TEST (optionalBracket, emptyContentEmptyBrackets)
517+ {
518+ ASSERT_EQ (optionalBracket (" " , " " , " " ), " " );
519+ }
520+
521+ TEST (optionalBracket, complexBrackets)
522+ {
523+ ASSERT_EQ (optionalBracket (" [[[" , " content" , " ]]]" ), " [[[content]]]" );
524+ }
525+
526+ TEST (optionalBracket, onlyPrefix)
527+ {
528+ ASSERT_EQ (optionalBracket (" prefix" , " content" , " " ), " prefixcontent" );
529+ }
530+
531+ TEST (optionalBracket, onlySuffix)
532+ {
533+ ASSERT_EQ (optionalBracket (" " , " content" , " suffix" ), " contentsuffix" );
534+ }
535+
536+ TEST (optionalBracket, optionalWithValue)
537+ {
538+ ASSERT_EQ (optionalBracket (" (" , std::optional<std::string>(" foo" ), " )" ), " (foo)" );
539+ }
540+
541+ TEST (optionalBracket, optionalNullopt)
542+ {
543+ ASSERT_EQ (optionalBracket (" (" , std::optional<std::string>(std::nullopt ), " )" ), " " );
544+ }
545+
546+ TEST (optionalBracket, optionalEmptyString)
547+ {
548+ ASSERT_EQ (optionalBracket (" (" , std::optional<std::string>(" " ), " )" ), " " );
549+ }
550+
551+ TEST (optionalBracket, optionalStringViewWithValue)
552+ {
553+ ASSERT_EQ (optionalBracket (" (" , std::optional<std::string_view>(" bar" ), " )" ), " (bar)" );
554+ }
555+
497556} // namespace nix
0 commit comments